(()=>{"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:()=>Pt,controls_typeLists:()=>Vt,lists_zip:()=>yt,lists_zip_container:()=>Yt,lists_zip_item:()=>bt,unpack_iterable_object:()=>kt,variables_change:()=>Ft,variables_get:()=>Nt,variables_global:()=>vt,variables_set:()=>ft});var i={};t.r(i),t.d(i,{base_setup:()=>wt,controls_delay:()=>Ut,controls_end_program:()=>xt,controls_except:()=>ee,controls_finally:()=>ie,controls_flow_statements:()=>Qt,controls_for:()=>jt,controls_forEach:()=>Wt,controls_for_range:()=>Jt,controls_if:()=>Ht,controls_if_else:()=>$t,controls_if_elseif:()=>Zt,controls_if_if:()=>zt,controls_lambda:()=>se,controls_main:()=>Gt,controls_pass:()=>oe,controls_range:()=>Bt,controls_repeat_ext:()=>ne,controls_thread:()=>pe,controls_try:()=>te,controls_try_finally:()=>qt,controls_whileUntil:()=>Kt,datetime_fromtimestamp:()=>de,do_while:()=>ue,garbage_collection:()=>ae,gene_unique_identifier:()=>Ie,get_mem_alloc:()=>le,get_mem_free:()=>_e,get_unique_identifier:()=>re});var n={};t.r(n),t.d(n,{base_map:()=>ye,generate_cartesian_product:()=>be,math_arithmetic:()=>ce,math_bit:()=>Me,math_constant:()=>me,math_constant_mp:()=>Oe,math_constrain:()=>Le,math_dec:()=>Ce,math_degree_to_radian:()=>Xe,math_indexer_number:()=>fe,math_map:()=>Ne,math_max_min:()=>ge,math_number:()=>he,math_number_base_conversion:()=>Se,math_radian_to_degree:()=>ke,math_random:()=>De,math_random_seed:()=>Fe,math_round:()=>ve,math_selfcalcu:()=>Re,math_to_int:()=>Ae,math_trig:()=>Ee,text_to_number:()=>Pe,text_to_number_skulpt:()=>Ve,turn_to_int:()=>Ye});var s={};t.r(s),t.d(s,{ascii_to_char:()=>We,char_to_ascii:()=>Ke,number_to_text:()=>qe,os_system:()=>ci,text:()=>we,text_bytes:()=>xe,text_capital:()=>ii,text_center:()=>ni,text_char:()=>He,text_char_at:()=>Je,text_char_at2:()=>je,text_char_at3:()=>Ti,text_compareTo:()=>Ii,text_compare_to:()=>ei,text_create_with_container:()=>_i,text_create_with_item:()=>ri,text_encode:()=>mi,text_equals_starts_ends:()=>ti,text_eval:()=>Oi,text_find:()=>si,text_format:()=>li,text_format_noreturn:()=>hi,text_join:()=>Be,text_join_seq:()=>oi,text_length:()=>Qe,text_random_char:()=>ze,text_replace:()=>pi,text_split:()=>ui,text_strip:()=>ai,text_substring:()=>$e,text_substring2:()=>Ze,text_substring3:()=>di,text_textarea:()=>Ue});var o={};t.r(o),t.d(o,{ENUMERATE:()=>tn,content_in_lists:()=>nn,enumerate:()=>en,list_many_input:()=>Ui,list_tolist:()=>Wi,list_tolist2:()=>$i,list_trig:()=>Xi,lists_2d_get_col_row_data:()=>Ai,lists_2d_get_data_with_col_row:()=>Ci,lists_append_extend:()=>fi,lists_change_to:()=>wi,lists_change_to_general:()=>Hi,lists_clear:()=>yi,lists_create_with:()=>gi,lists_create_with2:()=>Ki,lists_create_with_container:()=>Di,lists_create_with_item:()=>Li,lists_create_with_noreturn:()=>xi,lists_create_with_text:()=>Si,lists_create_with_text2:()=>qi,lists_del_general:()=>Bi,lists_find:()=>ki,lists_getIndex3:()=>Qi,lists_getSublist3:()=>ji,lists_get_index:()=>Mi,lists_get_random_item:()=>Fi,lists_get_random_sublist:()=>vi,lists_get_sublist:()=>Ei,lists_insert_value:()=>Pi,lists_insert_value2:()=>zi,lists_pop:()=>bi,lists_remove_at:()=>Yi,lists_remove_at2:()=>Zi,lists_reverse:()=>Vi,lists_setIndex3:()=>Ji,lists_set_index:()=>Ni,lists_sort:()=>Gi});var p={};t.r(p),t.d(p,{dicts_add_change_del:()=>Rn,dicts_add_or_change:()=>rn,dicts_clear:()=>Tn,dicts_create_with:()=>on,dicts_create_with_container:()=>pn,dicts_create_with_item:()=>un,dicts_create_with_noreturn:()=>Cn,dicts_deldict:()=>cn,dicts_delete:()=>dn,dicts_get:()=>ln,dicts_get_default:()=>_n,dicts_items:()=>hn,dicts_keys:()=>an,dicts_length:()=>On,dicts_pop:()=>Mn,dicts_setdefault:()=>En,dicts_to_json:()=>gn,dicts_to_json2:()=>Ln,dicts_to_to:()=>Dn,dicts_todict:()=>An,dicts_update:()=>In,dicts_values:()=>mn,json_to_dicts:()=>Sn});var u={};t.r(u),t.d(u,{logic_boolean:()=>Vn,logic_compare:()=>fn,logic_compare_continous:()=>Fn,logic_is:()=>kn,logic_is_in:()=>bn,logic_negate:()=>Pn,logic_null:()=>yn,logic_operation:()=>vn,logic_tobool:()=>Xn,logic_true_or_false:()=>Yn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>us,sdcard_use_spi_init:()=>ps,storage_can_write_ornot:()=>qn,storage_change_dir:()=>ss,storage_close_file:()=>jn,storage_delete_file:()=>zn,storage_file_seek:()=>ts,storage_file_tell:()=>$n,storage_file_write:()=>Hn,storage_fileopen:()=>wn,storage_fileopen_new:()=>Un,storage_fileopen_new_encoding:()=>xn,storage_get_a_line:()=>Kn,storage_get_contents:()=>Wn,storage_get_contents_without_para:()=>Bn,storage_get_current_dir:()=>es,storage_get_file_size:()=>Zn,storage_get_filename:()=>Qn,storage_is_file:()=>os,storage_list_all_files:()=>Jn,storage_make_dir:()=>is,storage_open_file_with_os:()=>Gn,storage_rename:()=>ns});var l={};t.r(l),t.d(l,{procedures_callnoreturn:()=>ds,procedures_callreturn:()=>Is,procedures_defnoreturn:()=>as,procedures_defreturn:()=>ls,procedures_ifreturn:()=>Ts,procedures_mutatorarg:()=>rs,procedures_mutatorcontainer:()=>_s,procedures_return:()=>hs});var _={};t.r(_),t.d(_,{tuple_change_to:()=>Ls,tuple_create_llm_params:()=>bs,tuple_create_with:()=>Os,tuple_create_with_container:()=>cs,tuple_create_with_item:()=>Rs,tuple_create_with_noreturn:()=>vs,tuple_create_with_text2:()=>Ms,tuple_create_with_text_return:()=>Es,tuple_del:()=>gs,tuple_find:()=>Ns,tuple_getIndex:()=>Cs,tuple_getSublist:()=>Fs,tuple_get_random_item:()=>Vs,tuple_get_sublist:()=>Ps,tuple_input:()=>Ys,tuple_join:()=>Ss,tuple_length:()=>As,tuple_max:()=>Ds,tuple_totuple:()=>ys,tuple_trig:()=>fs});var r={};t.r(r),t.d(r,{set_add_discard:()=>Ks,set_clear:()=>Hs,set_create_with:()=>Xs,set_create_with_container:()=>Gs,set_create_with_item:()=>ws,set_create_with_text_return:()=>js,set_length:()=>Us,set_operate:()=>Bs,set_operate_update:()=>Ws,set_pop:()=>xs,set_sub:()=>qs,set_toset:()=>Js,set_update:()=>Qs});var d={};t.r(d),t.d(d,{html_content:()=>eo,html_content_more:()=>io,html_document:()=>Zs,html_form:()=>so,html_head_body:()=>to,html_style:()=>no,html_style_color:()=>po,html_style_content:()=>oo,html_text:()=>uo,html_title:()=>$s});var I={};t.r(I),t.d(I,{attribute_access:()=>Co,function_call:()=>Ro,function_call_container:()=>Mo,function_call_item:()=>Eo,raw_block:()=>_o,raw_empty:()=>Io,raw_expression:()=>ro,raw_table:()=>lo,text_comment:()=>To,text_print_multiple:()=>mo,text_print_multiple_container:()=>Oo,text_print_multiple_item:()=>co,type_check:()=>ho});var T={};t.r(T),t.d(T,{controls_type:()=>Lo,controls_typeLists:()=>No,lists_zip:()=>fo,unpack_iterable_object:()=>Fo,variables_change:()=>So,variables_get:()=>Ao,variables_global:()=>Do,variables_set:()=>go});var h={};t.r(h),t.d(h,{Panic_with_status_code:()=>wo,base_setup:()=>Po,controls_delay:()=>Go,controls_flow_statements:()=>Xo,controls_for:()=>Yo,controls_forEach:()=>Wo,controls_for_range:()=>bo,controls_if:()=>Vo,controls_interrupts:()=>Ho,controls_lambda:()=>qo,controls_main:()=>vo,controls_millis:()=>Uo,controls_nointerrupts:()=>Bo,controls_pass:()=>jo,controls_range:()=>Ko,controls_repeat:()=>np,controls_repeat_ext:()=>Zo,controls_thread:()=>Jo,controls_try_finally:()=>yo,controls_whileUntil:()=>ko,datetime_fromtimestamp:()=>sp,do_while:()=>zo,garbage_collection:()=>$o,gene_unique_identifier:()=>op,get_mem_alloc:()=>tp,get_mem_free:()=>ep,get_unique_identifier:()=>ip,reset:()=>xo,time_sleep:()=>Qo});var m={};t.r(m),t.d(m,{base_map:()=>Dp,generate_cartesian_product:()=>Np,math_arithmetic:()=>_p,math_bit:()=>lp,math_constant:()=>up,math_constant_mp:()=>ap,math_constrain:()=>Rp,math_dec:()=>Tp,math_degree_to_radian:()=>Fp,math_indexer_number:()=>Cp,math_map:()=>cp,math_max_min:()=>mp,math_number:()=>pp,math_number_base_conversion:()=>Mp,math_radian_to_degree:()=>fp,math_random:()=>Op,math_random_seed:()=>Ep,math_round:()=>Ap,math_selfcalcu:()=>rp,math_single:()=>dp,math_to_int:()=>hp,math_trig:()=>Ip,text_to_number:()=>gp,text_to_number_skulpt:()=>Sp,turn_to_int:()=>Lp});var O={};t.r(O),t.d(O,{ascii_to_char:()=>bp,char_to_ascii:()=>kp,number_to_text:()=>Xp,os_system:()=>uu,text:()=>vp,text_bytes:()=>Vp,text_capital:()=>qp,text_center:()=>Qp,text_char:()=>yp,text_char_at:()=>Up,text_char_at2:()=>wp,text_char_at3:()=>su,text_compareTo:()=>nu,text_compare_to:()=>Bp,text_encode:()=>ou,text_equals_starts_ends:()=>Hp,text_eval:()=>pu,text_find:()=>jp,text_format:()=>tu,text_format_noreturn:()=>eu,text_join:()=>Yp,text_join_seq:()=>Jp,text_length:()=>Gp,text_random_char:()=>xp,text_replace:()=>zp,text_split:()=>Zp,text_strip:()=>$p,text_substring:()=>Kp,text_substring2:()=>Wp,text_substring3:()=>iu,text_textarea:()=>Pp});var c={};t.r(c),t.d(c,{content_in_lists:()=>Uu,enumerate:()=>wu,list_many_input:()=>Lu,list_tolist:()=>Xu,list_tolist2:()=>Gu,list_trig:()=>gu,lists_2d_get_col_row_data:()=>_u,lists_2d_get_data_with_col_row:()=>lu,lists_append_extend:()=>hu,lists_change_to:()=>Du,lists_change_to_general:()=>fu,lists_clear:()=>Mu,lists_create_with:()=>ru,lists_create_with2:()=>vu,lists_create_with_noreturn:()=>Nu,lists_create_with_text:()=>du,lists_create_with_text2:()=>Pu,lists_del_general:()=>Fu,lists_find:()=>Eu,lists_getIndex3:()=>Vu,lists_getSublist3:()=>yu,lists_get_index:()=>Iu,lists_get_random_item:()=>mu,lists_get_random_sublist:()=>Ou,lists_get_sublist:()=>au,lists_insert_value:()=>cu,lists_insert_value2:()=>bu,lists_pop:()=>Au,lists_remove_at:()=>Cu,lists_remove_at2:()=>ku,lists_reverse:()=>Ru,lists_setIndex3:()=>Yu,lists_set_index:()=>Tu,lists_sort:()=>Su});var R={};t.r(R),t.d(R,{dicts_add_change_del:()=>ta,dicts_add_or_change:()=>Ku,dicts_clear:()=>ju,dicts_create_with:()=>xu,dicts_create_with_noreturn:()=>na,dicts_deldict:()=>$u,dicts_delete:()=>qu,dicts_get:()=>Bu,dicts_get_default:()=>Wu,dicts_items:()=>Ju,dicts_keys:()=>Hu,dicts_length:()=>Zu,dicts_pop:()=>ea,dicts_setdefault:()=>ia,dicts_to_json:()=>oa,dicts_to_json2:()=>aa,dicts_to_to:()=>ua,dicts_todict:()=>sa,dicts_update:()=>Qu,dicts_values:()=>zu,json_to_dicts:()=>pa});var M={};t.r(M),t.d(M,{logic_boolean:()=>Ia,logic_compare:()=>la,logic_compare_continous:()=>_a,logic_is:()=>Oa,logic_is_in:()=>ma,logic_negate:()=>da,logic_null:()=>Ta,logic_operation:()=>ra,logic_tobool:()=>ca,logic_true_or_false:()=>ha});var E={};t.r(E),t.d(E,{sdcard_mount:()=>Ua,sdcard_use_spi_init:()=>wa,storage_can_write_ornot:()=>La,storage_change_dir:()=>Ya,storage_close_file:()=>fa,storage_delete_file:()=>va,storage_file_seek:()=>ya,storage_file_tell:()=>Va,storage_file_write:()=>Aa,storage_fileopen:()=>Ma,storage_fileopen_new:()=>Ea,storage_fileopen_new_encoding:()=>Ca,storage_get_a_line:()=>Da,storage_get_contents:()=>Sa,storage_get_contents_without_para:()=>ga,storage_get_current_dir:()=>ba,storage_get_file_size:()=>Pa,storage_get_filename:()=>Na,storage_is_file:()=>Ga,storage_list_all_files:()=>Fa,storage_make_dir:()=>ka,storage_open_file_with_os:()=>Ra,storage_rename:()=>Xa});var C={};t.r(C),t.d(C,{procedures_callnoreturn:()=>Wa,procedures_callreturn:()=>Ba,procedures_defnoreturn:()=>Ha,procedures_defreturn:()=>xa,procedures_ifreturn:()=>Ka,procedures_return:()=>qa});var A={};t.r(A),t.d(A,{tuple_change_to:()=>il,tuple_create_llm_params:()=>rl,tuple_create_with:()=>Qa,tuple_create_with_noreturn:()=>pl,tuple_create_with_text2:()=>ja,tuple_create_with_text_return:()=>Ja,tuple_del:()=>$a,tuple_find:()=>nl,tuple_getIndex:()=>za,tuple_getSublist:()=>ol,tuple_get_random_item:()=>al,tuple_get_sublist:()=>ul,tuple_input:()=>_l,tuple_join:()=>tl,tuple_length:()=>Za,tuple_max:()=>el,tuple_totuple:()=>ll,tuple_trig:()=>sl});var g={};t.r(g),t.d(g,{set_add_discard:()=>cl,set_clear:()=>hl,set_create_with:()=>dl,set_create_with_text_return:()=>El,set_length:()=>Il,set_operate:()=>ml,set_operate_update:()=>Ol,set_pop:()=>Tl,set_sub:()=>Rl,set_toset:()=>Cl,set_update:()=>Ml});var S={};t.r(S),t.d(S,{html_content:()=>Dl,html_content_more:()=>Ll,html_document:()=>Al,html_form:()=>fl,html_head_body:()=>Sl,html_style:()=>Nl,html_style_content:()=>Fl,html_text:()=>vl,html_title:()=>gl});var D={};t.r(D),t.d(D,{attribute_access:()=>Xl,function_call:()=>kl,raw_block:()=>Pl,raw_empty:()=>yl,raw_expression:()=>Vl,raw_table:()=>Yl,type_check:()=>bl});var L={};t.r(L),t.d(L,{actuator_extern_get_led_bright:()=>ql,actuator_extern_led_bright:()=>Kl,actuator_extern_led_brightness:()=>Ql,actuator_get_led_bright:()=>Jl,actuator_led_bright:()=>jl,actuator_led_brightness:()=>zl,actuator_neopixel_init:()=>__,actuator_neopixel_rgb:()=>r_,actuator_neopixel_write:()=>d_,actuator_onboard_neopixel_rgb:()=>I_,actuator_onboard_neopixel_rgb_all:()=>T_,actuator_onboard_neopixel_write:()=>h_,esp32_mixgo_music_play_list_show:()=>l_,esp32_music_get_tempo:()=>i_,esp32_music_pitch:()=>Zl,esp32_music_pitch_with_time:()=>$l,esp32_music_play_list:()=>a_,esp32_music_reset:()=>n_,esp32_music_set_tempo:()=>e_,esp32_music_stop:()=>t_,esp32_onboard_music_pitch:()=>s_,esp32_onboard_music_pitch_with_time:()=>o_,esp32_onboard_music_play_list:()=>u_,esp32_onboard_music_stop:()=>p_,get_led_bright:()=>O_,led_brightness:()=>c_,led_light:()=>m_,ledswitch:()=>Wl,number:()=>Bl,servo_move:()=>Hl});var N={};t.r(N),t.d(N,{mpython_blynk_app_data:()=>V_,mpython_blynk_app_notify:()=>D_,mpython_blynk_email:()=>f_,mpython_blynk_get_timers:()=>F_,mpython_blynk_on_connected:()=>A_,mpython_blynk_on_disconnected:()=>C_,mpython_blynk_run:()=>S_,mpython_blynk_sensor_data_to_app:()=>P_,mpython_blynk_set_property:()=>N_,mpython_blynk_setup:()=>y_,mpython_blynk_stop_timers:()=>L_,mpython_blynk_sync_virtual:()=>E_,mpython_blynk_terminal_widget_vpin:()=>M_,mpython_blynktimer:()=>v_,mpython_blynktimer_run:()=>g_});var f={};t.r(f),t.d(f,{display_animate:()=>qr,display_blink_rate:()=>Yr,display_bright_point:()=>pr,display_bright_screen:()=>yr,display_circle:()=>Qr,display_clear:()=>sr,display_draw_4strings:()=>Lr,display_fill:()=>xr,display_get_pixel:()=>or,display_get_screen_image:()=>Vr,display_get_screen_pixel:()=>Pr,display_help:()=>Jr,display_image_builtins:()=>Or,display_image_create:()=>cr,display_image_size:()=>Nr,display_line:()=>Fr,display_line_arbitrarily:()=>vr,display_matrix_use_i2c_init:()=>$r,display_oled_drawPixel:()=>Zr,display_oled_showBitmap:()=>zr,display_onoff:()=>Ur,display_rect:()=>fr,display_rgb_color:()=>br,display_scroll_string:()=>Xr,display_scroll_string_delay:()=>wr,display_scroll_string_extern:()=>ed,display_show_image:()=>td,display_show_image_or_string:()=>kr,display_show_image_or_string_delay:()=>Gr,display_show_static:()=>lr,display_tm1650_power:()=>Br,display_tm1650_show_dot:()=>Kr,display_tm1650_show_num:()=>Wr,display_tm_use_i2c_init:()=>Hr,display_triangle:()=>jr,display_use_i2c_init:()=>Dr,esp32_display_is_on:()=>mr,esp32_display_off:()=>hr,esp32_display_on:()=>Tr,esp32_display_scroll:()=>Ir,esp32_display_show_animation:()=>dr,esp32_display_show_default_image:()=>rr,esp32_display_show_string:()=>Er,group_lcd_init:()=>Ar,group_lcd_power:()=>Sr,group_lcd_print:()=>Cr,group_lcd_print2:()=>gr,image_arithmetic:()=>Mr,image_shift:()=>Rr,microbit_display_show_image:()=>_r,monitor_show_scroll_string:()=>ar,monitor_show_string:()=>ur});var F={};t.r(F),t.d(F,{IOT_CONNECT_OLLAMA:()=>Gd,IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Dd,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Sd,IOT_EMQX_PING:()=>Ad,IOT_FORMATTING:()=>Ed,IOT_FORMAT_STRING:()=>Cd,IOT_MIXIO_NTP:()=>gd,IOT_MIXIO_PUBLISH:()=>Id,IOT_MIXIO_PUBLISHEX:()=>Td,IOT_MIXIO_SUBSCRIBE:()=>hd,iot_checkonenet:()=>bd,iot_client_onboard:()=>Nd,iot_connect_ollama:()=>Xd,iot_connect_openai:()=>wd,iot_create_with_item:()=>rd,iot_http_client:()=>fd,iot_http_data:()=>Fd,iot_mixio_check:()=>cd,iot_mixio_connect:()=>dd,iot_mixio_connect_only:()=>Od,iot_mixio_disconnect:()=>md,iot_mixio_format_msg:()=>Md,iot_mixio_format_topic:()=>Rd,iot_mixly_key:()=>Ld,iot_mqtt_client:()=>vd,iot_mqtt_data:()=>Pd,iot_onenet_check:()=>pd,iot_onenet_connect:()=>sd,iot_onenet_disconnect:()=>od,iot_onenet_publish:()=>ad,iot_onenet_publish_dict:()=>ud,iot_onenetconnect:()=>yd,iot_onenetdisconnect:()=>Yd,iot_publish:()=>kd,iot_publish_container:()=>ld,iot_publish_item:()=>_d,iot_tiny_web_db_count:()=>Qd,iot_tiny_web_db_delete:()=>Jd,iot_tiny_web_db_get:()=>qd,iot_tiny_web_db_init:()=>Bd,iot_tiny_web_db_init_with_mqtt:()=>Wd,iot_tiny_web_db_search:()=>jd,iot_tiny_web_db_update:()=>Kd,iot_wifi_connect:()=>nd,iot_wificonnect:()=>Vd,ollama_empty_history:()=>Hd,use_ollama_llm_to_chat:()=>Ud,use_ollama_llm_to_chat_return:()=>xd});var v={};t.r(v),t.d(v,{educore_mqtt_connect:()=>FI,educore_mqtt_connect_success:()=>yI,educore_mqtt_subscribe_message:()=>vI,educore_mqtt_topic_publish:()=>VI,educore_mqtt_topic_subscribe:()=>PI,educore_wifi_connect:()=>fI,network_ap_connect:()=>uI,network_connect:()=>iI,network_get_connect:()=>sI,network_get_wifi:()=>pI,network_init:()=>Zd,network_is_active:()=>tI,network_open:()=>$d,network_scan:()=>eI,network_server:()=>aI,network_socket_accept:()=>II,network_socket_bind:()=>_I,network_socket_close:()=>RI,network_socket_connect:()=>rI,network_socket_init:()=>lI,network_socket_listen:()=>dI,network_socket_readline:()=>TI,network_socket_receive:()=>hI,network_socket_receive_from:()=>OI,network_socket_send:()=>mI,network_socket_send_to:()=>cI,network_stop:()=>oI,network_wifi_connect:()=>nI,ntptime_address:()=>gI,ntptime_time:()=>AI,requests_attribute:()=>EI,requests_attribute2:()=>NI,requests_get:()=>MI,requests_get2:()=>DI,requests_method:()=>CI,requests_post:()=>LI});var P={};t.r(P),t.d(P,{actuator_extern_get_led_bright:()=>nT,actuator_extern_led_bright:()=>iT,actuator_extern_led_brightness:()=>sT,actuator_get_led_bright:()=>pT,actuator_led_bright:()=>oT,actuator_led_brightness:()=>uT,actuator_neopixel_init:()=>aT,actuator_neopixel_rgb:()=>_T,actuator_neopixel_write:()=>lT,actuator_onboard_neopixel_rgb:()=>dT,actuator_onboard_neopixel_rgb_all:()=>IT,actuator_onboard_neopixel_write:()=>rT,esp32_mixgo_music_play_list_show:()=>zI,esp32_music_get_tempo:()=>WI,esp32_music_pitch:()=>UI,esp32_music_pitch_with_time:()=>xI,esp32_music_play_list:()=>JI,esp32_music_reset:()=>ZI,esp32_music_set_tempo:()=>BI,esp32_music_stop:()=>HI,esp32_onboard_music_pitch:()=>KI,esp32_onboard_music_pitch_with_time:()=>qI,esp32_onboard_music_play_list:()=>jI,esp32_onboard_music_stop:()=>QI,get_led_bright:()=>hT,led_brightness:()=>mT,led_light:()=>TT,ledswitch:()=>eT,number:()=>tT,servo_move:()=>$I});var V={};t.r(V),t.d(V,{mpython_blynk_app_data:()=>NT,mpython_blynk_app_notify:()=>AT,mpython_blynk_email:()=>fT,mpython_blynk_get_timers:()=>ST,mpython_blynk_on_connected:()=>MT,mpython_blynk_on_disconnected:()=>RT,mpython_blynk_run:()=>CT,mpython_blynk_sensor_data_to_app:()=>LT,mpython_blynk_set_property:()=>FT,mpython_blynk_setup:()=>vT,mpython_blynk_stop_timers:()=>gT,mpython_blynk_sync_virtual:()=>cT,mpython_blynk_terminal_widget_vpin:()=>OT,mpython_blynktimer:()=>DT,mpython_blynktimer_run:()=>ET});var y={};t.r(y),t.d(y,{display_animate:()=>oh,display_blink_rate:()=>BT,display_bright_point:()=>wT,display_bright_screen:()=>HT,display_circle:()=>ph,display_clear:()=>WT,display_draw_4strings:()=>qT,display_fill:()=>th,display_get_pixel:()=>GT,display_get_screen_image:()=>xT,display_get_screen_pixel:()=>UT,display_image_builtins:()=>XT,display_image_create:()=>kT,display_line:()=>zT,display_line_arbitrarily:()=>QT,display_matrix_use_i2c_init:()=>_h,display_oled_drawPixel:()=>lh,display_oled_showBitmap:()=>ah,display_onoff:()=>ZT,display_rect:()=>jT,display_scroll_string:()=>VT,display_scroll_string_delay:()=>bT,display_scroll_string_extern:()=>dh,display_show_image:()=>rh,display_show_image_or_string:()=>PT,display_show_image_or_string_delay:()=>YT,display_show_static:()=>yT,display_tm1650_power:()=>ih,display_tm1650_show_dot:()=>sh,display_tm1650_show_num:()=>nh,display_tm_use_i2c_init:()=>eh,display_triangle:()=>uh,display_use_i2c_init:()=>KT,image_arithmetic:()=>JT,image_shift:()=>$T});var Y={};t.r(Y),t.d(Y,{IOT_CONNECT_OLLAMA:()=>Uh,IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Ph,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Fh,IOT_EMQX_PING:()=>Vh,IOT_FORMATTING:()=>Nh,IOT_FORMAT_STRING:()=>fh,IOT_MIXIO_NTP:()=>yh,IOT_MIXIO_PUBLISH:()=>Mh,IOT_MIXIO_PUBLISHEX:()=>Eh,IOT_MIXIO_SUBSCRIBE:()=>Ch,iot_client_onboard:()=>Yh,iot_connect_ollama:()=>wh,iot_connect_openai:()=>xh,iot_http_client:()=>bh,iot_http_data:()=>kh,iot_mixio_check:()=>Sh,iot_mixio_connect:()=>Rh,iot_mixio_connect_only:()=>gh,iot_mixio_disconnect:()=>Ah,iot_mixio_format_msg:()=>Lh,iot_mixio_format_topic:()=>Dh,iot_mixly_key:()=>vh,iot_mqtt_client:()=>Xh,iot_mqtt_data:()=>Gh,iot_onenet_check:()=>Oh,iot_onenet_connect:()=>Th,iot_onenet_disconnect:()=>hh,iot_onenet_publish:()=>ch,iot_onenet_publish_dict:()=>mh,iot_tiny_web_db_count:()=>Jh,iot_tiny_web_db_delete:()=>Zh,iot_tiny_web_db_get:()=>jh,iot_tiny_web_db_init:()=>Kh,iot_tiny_web_db_init_with_mqtt:()=>qh,iot_tiny_web_db_search:()=>zh,iot_tiny_web_db_update:()=>Qh,iot_wifi_connect:()=>Ih,ollama_empty_history:()=>Wh,use_ollama_llm_to_chat:()=>Hh,use_ollama_llm_to_chat_return:()=>Bh});var b={};t.r(b),t.d(b,{educore_mqtt_connect:()=>Fm,educore_mqtt_connect_success:()=>ym,educore_mqtt_subscribe_message:()=>vm,educore_mqtt_topic_publish:()=>Vm,educore_mqtt_topic_subscribe:()=>Pm,educore_wifi_connect:()=>fm,network_ap_connect:()=>um,network_connect:()=>tm,network_get_connect:()=>im,network_get_wifi:()=>pm,network_init:()=>$h,network_is_active:()=>om,network_open:()=>sm,network_scan:()=>am,network_server:()=>lm,network_socket_accept:()=>Tm,network_socket_bind:()=>rm,network_socket_close:()=>Mm,network_socket_connect:()=>dm,network_socket_init:()=>_m,network_socket_listen:()=>Im,network_socket_readline:()=>hm,network_socket_receive:()=>mm,network_socket_receive_from:()=>cm,network_socket_send:()=>Om,network_socket_send_to:()=>Rm,network_stop:()=>nm,network_wifi_connect:()=>em,ntptime_address:()=>Sm,ntptime_time:()=>gm,requests_attribute:()=>Cm,requests_attribute2:()=>Lm,requests_get:()=>Em,requests_get2:()=>Dm,requests_method:()=>Am,requests_post:()=>Nm});var k={};t.r(k),t.d(k,{PID_get_pid:()=>tO,PID_init:()=>$m,actuator_PAC9685_Servo:()=>Km,actuator_PAC9685_init:()=>Wm,actuator_Servo:()=>Bm,actuator_Servo_init:()=>Hm,actuator_ms32006_dcmotor:()=>zm,actuator_ms32006_init:()=>Jm,actuator_ms32006_stepper:()=>Zm,actuator_rgb_display:()=>jm,actuator_rgb_init:()=>qm,actuator_rgb_set:()=>Qm});var X={};t.r(X),t.d(X,{KPU_analysis:()=>lO,KPU_forward:()=>aO,KPU_init_yolo2:()=>pO,KPU_load:()=>sO,KPU_load1:()=>oO,KPU_run_yolo2:()=>uO,ai_face_info:()=>cO,ai_face_init:()=>mO,ai_face_train:()=>OO,ailocal_loading:()=>TO,ailocal_predict:()=>hO,ailocal_training:()=>IO,aionenet_API:()=>dO,aionenet_nic_init:()=>_O,aionenet_token:()=>rO,tuple_anchor:()=>iO,tuple_calss:()=>nO});var G={};t.r(G),t.d(G,{audio_play:()=>CO,audio_record:()=>AO,mic_init:()=>EO,spk_init:()=>MO,video_play:()=>gO,video_record:()=>SO});var w={};t.r(w),t.d(w,{camera_getinfo:()=>wO,camera_init:()=>fO,camera_reset:()=>FO,camera_run:()=>VO,camera_set_colorbar:()=>GO,camera_set_framesize:()=>PO,camera_set_hmirror:()=>kO,camera_set_pixformat:()=>vO,camera_set_vflip:()=>XO,camera_set_windowing:()=>xO,camera_setmun:()=>UO,camera_shutdown:()=>bO,camera_skip_frames:()=>yO,camera_snapshot:()=>YO,mode:()=>LO,size:()=>NO});var U={};t.r(U),t.d(U,{communicate_i2c_available:()=>pc,communicate_i2c_init:()=>WO,communicate_i2c_master_read:()=>oc,communicate_i2c_read:()=>qO,communicate_i2c_scan:()=>jO,communicate_i2c_write:()=>QO,communicate_i2s_init:()=>KO,communicate_ir_recv:()=>BO,communicate_ow_init:()=>ac,communicate_ow_read:()=>_c,communicate_ow_reset:()=>Ic,communicate_ow_scan:()=>lc,communicate_ow_select:()=>dc,communicate_ow_write:()=>rc,communicate_spi_buffer:()=>ZO,communicate_spi_init:()=>JO,communicate_spi_read:()=>$O,communicate_spi_read_output:()=>tc,communicate_spi_readinto:()=>ec,communicate_spi_readinto_output:()=>ic,communicate_spi_set:()=>zO,communicate_spi_write:()=>nc,communicate_spi_write_readinto:()=>sc,i2c_available:()=>Nc,i2c_init:()=>Tc,i2c_master_reader2:()=>Lc,i2c_read:()=>hc,i2c_scan:()=>Oc,i2c_slave_onreceive:()=>uc,i2c_write:()=>mc,spi_buffer:()=>Mc,spi_init:()=>cc,spi_read:()=>Ec,spi_read_output:()=>Cc,spi_readinto:()=>Ac,spi_readinto_output:()=>gc,spi_set:()=>Rc,spi_write:()=>Sc,spi_write_readinto:()=>Dc});var x={};t.r(x),t.d(x,{angle:()=>Fc,lcd_clear:()=>kc,lcd_color:()=>vc,lcd_colour:()=>Yc,lcd_display:()=>bc,lcd_draw_string:()=>wc,lcd_init:()=>Vc,lcd_mirror:()=>Gc,lcd_rotation:()=>Xc,lcd_width:()=>yc,on_off:()=>Pc,touch_calibrate:()=>xc,touch_info:()=>Bc,touch_init:()=>Uc,touch_read:()=>Hc});var H={};t.r(H),t.d(H,{factory_block:()=>eR,factory_block_notes:()=>oR,factory_block_return:()=>iR,factory_block_return_with_textarea:()=>sR,factory_block_with_textarea:()=>nR,factory_callMethod_noreturn:()=>$c,factory_callMethod_return:()=>tR,factory_create_with_container:()=>jc,factory_create_with_item:()=>Jc,factory_declare:()=>Zc,factory_from_import:()=>Kc,factory_function_noreturn:()=>Qc,factory_function_return:()=>zc,factory_import:()=>qc});var B={};t.r(B),t.d(B,{asrloca_config:()=>aR,asrloca_del:()=>_R,asrloca_init:()=>uR,asrloca_recognize:()=>lR});var W={};t.r(W),t.d(W,{image_Histogram:()=>_M,image_Image:()=>IR,image_Image1:()=>TR,image_RGB:()=>cR,image_apriltag:()=>pM,image_barcode:()=>oM,image_binary:()=>$R,image_blob:()=>lM,image_cartoon:()=>KR,image_circle:()=>xR,image_clear:()=>MR,image_compress:()=>RR,image_copy:()=>OR,image_dilate:()=>QR,image_draw_arrow:()=>FR,image_draw_circle:()=>PR,image_draw_cross:()=>vR,image_draw_image:()=>YR,image_draw_keypoints:()=>yR,image_draw_line:()=>fR,image_draw_rectangle:()=>VR,image_draw_string:()=>NR,image_draw_string_UTF:()=>LR,image_draw_string_flash:()=>DR,image_erode:()=>qR,image_find_apriltags:()=>nM,image_find_barcodes:()=>eM,image_find_blobs:()=>uM,image_find_circles:()=>XR,image_find_hog:()=>OM,image_find_keypoints:()=>cM,image_find_line_segments:()=>kR,image_find_lines:()=>bR,image_find_qrcodes:()=>iM,image_find_rects:()=>GR,image_flood_fill:()=>jR,image_font_free:()=>SR,image_font_load:()=>gR,image_get_histogram:()=>aM,image_get_pixel:()=>AR,image_get_regression:()=>wR,image_getinfo:()=>hR,image_grayscale_to_rgb:()=>mM,image_histeq:()=>BR,image_invert:()=>zR,image_kptmatch:()=>MM,image_lab_to_rgb:()=>IM,image_lens_corr:()=>ZR,image_line:()=>UR,image_linpolar:()=>JR,image_match_descriptor:()=>RM,image_mean:()=>WR,image_morph:()=>tM,image_percentile:()=>rM,image_qrcode:()=>sM,image_rect:()=>HR,image_rgb_to_grayscale:()=>hM,image_rgb_to_lab:()=>TM,image_save:()=>mR,image_set_pixel:()=>CR,image_threshold:()=>dM,image_tonew:()=>ER,true_false:()=>dR});var K={};t.r(K),t.d(K,{inout_digital_init:()=>AM,inout_digital_read:()=>SM,inout_digital_write:()=>gM,inout_highlow:()=>CM,inout_pin_attachInterrupt:()=>NM,inout_pin_disirq:()=>fM,inout_pwm_init:()=>DM,inout_pwm_write:()=>LM});var q={};t.r(q),t.d(q,{iot_checkonenet:()=>HM,iot_create_with_item:()=>GM,iot_onenet_check:()=>yM,iot_onenet_connect:()=>PM,iot_onenet_disconnect:()=>VM,iot_onenet_publish:()=>bM,iot_onenet_publish_dict:()=>YM,iot_onenetconnect:()=>UM,iot_onenetdisconnect:()=>xM,iot_publish:()=>BM,iot_publish_container:()=>kM,iot_publish_item:()=>XM,iot_wifi_connect:()=>vM,iot_wificonnect:()=>wM});var Q={};t.r(Q),t.d(Q,{base_map:()=>uE,math_arithmetic:()=>QM,math_bit:()=>JM,math_constant:()=>qM,math_constrain:()=>nE,math_indexer_number:()=>oE,math_map:()=>sE,math_max_min:()=>$M,math_max_min1:()=>tE,math_number:()=>KM,math_number_base_conversion:()=>eE,math_random:()=>iE,math_random_seed:()=>pE,math_selfcalcu:()=>jM,math_to_int:()=>ZM,math_trig:()=>zM});var j={};t.r(j),t.d(j,{nes_joystick_init:()=>lE,nes_keyboard_init:()=>_E,nes_run:()=>rE});var J={};t.r(J),t.d(J,{network_connect:()=>hE,network_disable_ap:()=>RE,network_disconnect:()=>OE,network_enable_ap:()=>cE,network_ifconfig:()=>mE,network_init:()=>IE,network_scan:()=>TE,network_socket_close:()=>DE,network_socket_connect:()=>CE,network_socket_getaddrinfo:()=>EE,network_socket_init:()=>ME,network_socket_receive:()=>SE,network_socket_send:()=>gE,network_socket_settimeout:()=>AE});var z={};t.r(z),t.d(z,{pins_analog:()=>FE,pins_analog_pin:()=>vE,pins_axis:()=>WE,pins_brightness:()=>KE,pins_builtinimg:()=>wE,pins_button:()=>yE,pins_dac:()=>PE,pins_dac_pin:()=>VE,pins_digital:()=>NE,pins_digital_dot:()=>zE,pins_digital_pin:()=>fE,pins_exlcdh:()=>HE,pins_exlcdv:()=>BE,pins_imglist:()=>UE,pins_one_more:()=>JE,pins_playlist:()=>xE,pins_pwm:()=>YE,pins_pwm_pin:()=>bE,pins_radio_datarate:()=>jE,pins_radio_power:()=>QE,pins_serial:()=>GE,pins_tone_notes:()=>qE,pins_touch:()=>XE,pins_touch_pin:()=>kE});var Z={};t.r(Z),t.d(Z,{HCSR04:()=>nC,KEY_SELET:()=>$E,sensor_adxl345_get_acceleration:()=>rC,sensor_bmp:()=>pC,sensor_button_init:()=>tC,sensor_button_read:()=>eC,sensor_dht11:()=>iC,sensor_mpu9250_get_acceleration:()=>sC,sensor_mpu9250_get_gyro:()=>lC,sensor_mpu9250_get_magnetic:()=>aC,sensor_mpu9250_temperature:()=>_C,sensor_sht:()=>uC,sensor_use_i2c_init:()=>oC});var $={};t.r($),t.d($,{serial_any:()=>cC,serial_print:()=>IC,serial_print_hex:()=>hC,serial_println:()=>TC,serial_read_from_mixgoce:()=>FC,serial_readline:()=>RC,serial_readstr:()=>OC,serial_readstr_until:()=>MC,serial_receive_data_event:()=>mC,serial_send_to_mixgoce:()=>fC,serial_softserial1:()=>EC,system_input:()=>CC,system_print:()=>AC,system_print_container:()=>LC,system_print_end:()=>SC,system_print_inline:()=>gC,system_print_item:()=>NC,system_print_many:()=>DC});var tt={};t.r(tt),t.d(tt,{Panic_with_status_code:()=>yC,TIM_SELET:()=>PC,Timer_init:()=>HC,base_delay:()=>KC,controls_delay:()=>VC,controls_millis:()=>YC,controls_uname:()=>kC,raw_block:()=>bC,system_gc_collect:()=>wC,system_reset:()=>GC,system_ticks_diff:()=>UC,system_timer:()=>XC,system_timer_init:()=>xC,time_ticks_diff:()=>WC,timer2:()=>BC});var et={};t.r(et),t.d(et,{LCD_color_seclet:()=>JC,lists_create_with_text1:()=>QC,tuple_create_with_text3:()=>jC});var it={};t.r(it),t.d(it,{PID_get_pid:()=>aA,PID_init:()=>uA,actuator_PAC9685_Servo:()=>tA,actuator_PAC9685_init:()=>$C,actuator_Servo:()=>ZC,actuator_Servo_init:()=>zC,actuator_ms32006_dcmotor:()=>oA,actuator_ms32006_init:()=>sA,actuator_ms32006_stepper:()=>pA,actuator_rgb_display:()=>nA,actuator_rgb_init:()=>eA,actuator_rgb_set:()=>iA});var nt={};t.r(nt),t.d(nt,{KPU_analysis:()=>mA,KPU_forward:()=>hA,KPU_init_yolo2:()=>IA,KPU_load:()=>rA,KPU_load1:()=>dA,KPU_run_yolo2:()=>TA,ai_face_info:()=>SA,ai_face_init:()=>AA,ai_face_train:()=>gA,ailocal_loading:()=>EA,ailocal_predict:()=>CA,ailocal_training:()=>MA,aionenet_API:()=>RA,aionenet_nic_init:()=>OA,aionenet_token:()=>cA,tuple_anchor:()=>lA,tuple_calss:()=>_A});var st={};t.r(st),t.d(st,{audio_play:()=>NA,audio_record:()=>fA,mic_init:()=>LA,spk_init:()=>DA,video_play:()=>FA,video_record:()=>vA});var ot={};t.r(ot),t.d(ot,{camera_getinfo:()=>WA,camera_init:()=>yA,camera_reset:()=>YA,camera_run:()=>XA,camera_set_colorbar:()=>BA,camera_set_framesize:()=>kA,camera_set_hmirror:()=>xA,camera_set_pixformat:()=>bA,camera_set_vflip:()=>HA,camera_set_windowing:()=>qA,camera_setmun:()=>KA,camera_shutdown:()=>UA,camera_skip_frames:()=>GA,camera_snapshot:()=>wA,mode:()=>PA,size:()=>VA});var pt={};t.r(pt),t.d(pt,{communicate_i2c_available:()=>eg,communicate_i2c_init:()=>jA,communicate_i2c_master_read:()=>tg,communicate_i2c_read:()=>zA,communicate_i2c_scan:()=>$A,communicate_i2c_write:()=>ZA,communicate_i2s_init:()=>JA,communicate_ir_recv:()=>QA,communicate_ow_init:()=>dg,communicate_ow_read:()=>hg,communicate_ow_reset:()=>Tg,communicate_ow_scan:()=>Ig,communicate_ow_select:()=>Og,communicate_ow_write:()=>mg,communicate_spi_buffer:()=>og,communicate_spi_init:()=>ng,communicate_spi_read:()=>pg,communicate_spi_read_output:()=>ug,communicate_spi_readinto:()=>ag,communicate_spi_readinto_output:()=>lg,communicate_spi_set:()=>sg,communicate_spi_write:()=>_g,communicate_spi_write_readinto:()=>rg,i2c_slave_onreceive:()=>ig});var ut={};t.r(ut),t.d(ut,{angle:()=>cg,lcd_clear:()=>Sg,lcd_color:()=>Rg,lcd_colour:()=>Cg,lcd_display:()=>gg,lcd_draw_string:()=>Ng,lcd_init:()=>Eg,lcd_mirror:()=>Lg,lcd_rotation:()=>Dg,lcd_width:()=>Ag,on_off:()=>Mg,touch_calibrate:()=>Fg,touch_info:()=>Pg,touch_init:()=>fg,touch_read:()=>vg});var at={};t.r(at),t.d(at,{factory_block:()=>wg,factory_block_notes:()=>Bg,factory_block_return:()=>Ug,factory_block_return_with_textarea:()=>Hg,factory_block_with_textarea:()=>xg,factory_callMethod_noreturn:()=>Xg,factory_callMethod_return:()=>Gg,factory_declare:()=>kg,factory_from_import:()=>Vg,factory_function_noreturn:()=>Yg,factory_function_return:()=>bg,factory_import:()=>yg});var lt={};t.r(lt),t.d(lt,{asrloca_config:()=>Kg,asrloca_del:()=>Qg,asrloca_init:()=>Wg,asrloca_recognize:()=>qg});var _t={};t.r(_t),t.d(_t,{image_Histogram:()=>qS,image_Image:()=>zg,image_Image1:()=>Zg,image_RGB:()=>Jg,image_apriltag:()=>HS,image_barcode:()=>US,image_binary:()=>bS,image_blob:()=>KS,image_cartoon:()=>fS,image_circle:()=>SS,image_clear:()=>aS,image_compress:()=>uS,image_copy:()=>pS,image_dilate:()=>vS,image_draw_arrow:()=>IS,image_draw_circle:()=>hS,image_draw_cross:()=>TS,image_draw_image:()=>cS,image_draw_keypoints:()=>OS,image_draw_line:()=>dS,image_draw_rectangle:()=>mS,image_draw_string:()=>oS,image_draw_string_UTF:()=>sS,image_draw_string_flash:()=>nS,image_erode:()=>FS,image_find_apriltags:()=>wS,image_find_barcodes:()=>XS,image_find_blobs:()=>BS,image_find_circles:()=>ES,image_find_hog:()=>tD,image_find_keypoints:()=>eD,image_find_line_segments:()=>MS,image_find_lines:()=>RS,image_find_qrcodes:()=>GS,image_find_rects:()=>CS,image_flood_fill:()=>PS,image_font_free:()=>eS,image_font_load:()=>iS,image_get_histogram:()=>WS,image_get_pixel:()=>rS,image_get_regression:()=>AS,image_getinfo:()=>$g,image_grayscale_to_rgb:()=>$S,image_histeq:()=>LS,image_invert:()=>yS,image_kptmatch:()=>nD,image_lab_to_rgb:()=>JS,image_lens_corr:()=>YS,image_line:()=>gS,image_linpolar:()=>VS,image_match_descriptor:()=>iD,image_mean:()=>NS,image_morph:()=>kS,image_percentile:()=>QS,image_qrcode:()=>xS,image_rect:()=>DS,image_rgb_to_grayscale:()=>ZS,image_rgb_to_lab:()=>zS,image_save:()=>tS,image_set_pixel:()=>_S,image_threshold:()=>jS,image_tonew:()=>lS,true_false:()=>jg});var rt={};t.r(rt),t.d(rt,{PGA_SELET:()=>sD,inout_adc_Vread:()=>ID,inout_adc_init:()=>rD,inout_adc_read:()=>dD,inout_digital_init:()=>pD,inout_digital_read:()=>aD,inout_digital_write:()=>uD,inout_highlow:()=>oD,inout_pin_attachInterrupt:()=>TD,inout_pin_disirq:()=>hD,inout_pwm_init:()=>lD,inout_pwm_write:()=>_D});var dt={};t.r(dt),t.d(dt,{iot_onenet_check:()=>MD,iot_onenet_connect:()=>OD,iot_onenet_disconnect:()=>cD,iot_onenet_publish:()=>ED,iot_onenet_publish_dict:()=>RD,iot_wifi_connect:()=>mD});var It={};t.r(It),t.d(It,{base_map:()=>XD,math_arithmetic:()=>SD,math_bit:()=>gD,math_constant:()=>AD,math_constrain:()=>yD,math_indexer_number:()=>kD,math_map:()=>VD,math_max_min:()=>FD,math_max_min1:()=>vD,math_number:()=>CD,math_number_base_conversion:()=>YD,math_random:()=>PD,math_random_seed:()=>bD,math_selfcalcu:()=>DD,math_single:()=>LD,math_to_int:()=>fD,math_trig:()=>ND});var Tt={};t.r(Tt),t.d(Tt,{nes_joystick_init:()=>GD,nes_keyboard_init:()=>wD,nes_run:()=>UD});var ht={};t.r(ht),t.d(ht,{network_connect:()=>BD,network_disable_ap:()=>QD,network_disconnect:()=>KD,network_enable_ap:()=>qD,network_ifconfig:()=>WD,network_init:()=>xD,network_scan:()=>HD,network_server:()=>jD,network_socket_close:()=>iL,network_socket_connect:()=>ZD,network_socket_getaddrinfo:()=>zD,network_socket_init:()=>JD,network_socket_receive:()=>tL,network_socket_send:()=>eL,network_socket_settimeout:()=>$D});var mt={};t.r(mt),t.d(mt,{pins_analog:()=>uL,pins_analog_pin:()=>pL,pins_axis:()=>RL,pins_brightness:()=>CL,pins_builtinimg:()=>mL,pins_button:()=>sL,pins_dac:()=>rL,pins_dac_pin:()=>_L,pins_digital:()=>nL,pins_digital_dot:()=>LL,pins_digital_pin:()=>oL,pins_exlcdh:()=>ML,pins_exlcdv:()=>EL,pins_imglist:()=>OL,pins_interrupt:()=>TL,pins_one_more:()=>DL,pins_playlist:()=>cL,pins_pwm:()=>lL,pins_pwm_pin:()=>aL,pins_radio_datarate:()=>SL,pins_radio_power:()=>gL,pins_serial:()=>hL,pins_tone_notes:()=>AL,pins_touch:()=>IL,pins_touch_pin:()=>dL});var Ot={};t.r(Ot),t.d(Ot,{HCSR04:()=>PL,KEY_SELET:()=>NL,sensor_adxl345_get_acceleration:()=>bL,sensor_bmp:()=>BL,sensor_button_init:()=>fL,sensor_button_read:()=>FL,sensor_compass_reset:()=>xL,sensor_dht11:()=>vL,sensor_mpu9250_attachGestureInterrupt:()=>VL,sensor_mpu9250_calibrate_compass:()=>GL,sensor_mpu9250_field_strength:()=>UL,sensor_mpu9250_gesture:()=>yL,sensor_mpu9250_get_acceleration:()=>YL,sensor_mpu9250_get_gyro:()=>XL,sensor_mpu9250_get_magnetic:()=>kL,sensor_mpu9250_temperature:()=>wL,sensor_sht:()=>WL,sensor_use_i2c_init:()=>HL});var ct={};t.r(ct),t.d(ct,{UART_SELET:()=>KL,serial_any:()=>JL,serial_print:()=>qL,serial_print_hex:()=>jL,serial_println:()=>QL,serial_read_from_mixgoce:()=>pN,serial_readline:()=>ZL,serial_readstr:()=>zL,serial_send_to_mixgoce:()=>oN,serial_softserial1:()=>$L,system_input:()=>tN,system_print:()=>eN,system_print_end:()=>nN,system_print_inline:()=>iN,system_print_many:()=>sN});var Rt={};t.r(Rt),t.d(Rt,{Panic_with_status_code:()=>cN,TIM_SELET:()=>uN,Timer_init:()=>fN,base_delay:()=>PN,controls_delay:()=>SN,controls_end_program:()=>MN,controls_millis:()=>RN,controls_uname:()=>gN,reset:()=>EN,system_device_name:()=>mN,system_device_serial_number:()=>ON,system_event_bus_source:()=>TN,system_event_bus_value:()=>hN,system_gc_collect:()=>AN,system_on_event:()=>rN,system_raise_event:()=>_N,system_reset:()=>CN,system_run_in_background:()=>aN,system_ticks_diff:()=>LN,system_timer:()=>DN,system_timer_init:()=>NN,system_timestamp:()=>dN,system_value:()=>IN,system_wait:()=>lN,time_ticks_diff:()=>vN,timer2:()=>FN});var Mt={};t.r(Mt),t.d(Mt,{LCD_color_seclet:()=>bN,LCD_color_seclet1:()=>YN,lists_create_with_text1:()=>VN,tuple_create_with_text3:()=>yN});const Et=Blockly,Ct=Mixly,At={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}},gt=At; /** * @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. */ class St{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(Et.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Et.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Et.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(Et.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Et.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Et.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")}},Bt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.PYTHON_RANGE).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Wt={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Et.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Et.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Et.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Et.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Et.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Et.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Et.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Et.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Et.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Et.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Et.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Et.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(Et.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Et.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(Et.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Et.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")}},Qt={init:function(){this.setColour(Xt);var t=new Et.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Et.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Et.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(Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Et.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Et.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Et.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Et.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Et.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Et.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Kt.OPERATORS=[[Et.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Et.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Qt.OPERATORS=[[Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Et.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},$t={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Et.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},te={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Et.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Et.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ne={init:function(){this.jsonInit({message0:Et.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:Et.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Et.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},se={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Et.Msg.MIXLY_STAT),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Et.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ue={init:function(){this.appendDummyInput().appendField(Et.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Et.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Et.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Et.FieldDropdown([[Et.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Et.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("")}},ae={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},le={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},re={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_GET+Et.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Et.Msg.PROCEDURES_DEFRETURN_RETURN+Et.Msg.MIXLY_GET_UNIQUE_IDEN)}},de={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Et.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},Ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(Et.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Te=230;Et.FieldTextInput.math_number_validator=function(t){return String(t)},Et.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 he={init:function(){this.setColour(Te),this.appendDummyInput().appendField(new Et.FieldTextInput("0",Et.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MATH_NUMBER_TOOLTIP)}},me={init:function(){this.setColour(Te);this.appendDummyInput("").appendField(Et.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Et.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Et.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Et.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Oe={init:function(){this.setColour(Te);this.appendDummyInput("").appendField(Et.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Et.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Et.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Et.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ce={init:function(){this.setColour(Te),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Et.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:Et.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Et.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Et.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Re={init:function(){this.setColour(Te),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Et.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:Et.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Et.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Et.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(Te),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Et.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Ee={init:function(){this.setColour(Te),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Et.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:Et.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Et.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Et.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Et.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Et.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Et.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Et.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ce={init:function(){var t=[[Et.Msg.MATH_BIN,"bin"],[Et.Msg.MATH_OCT,"oct"],[Et.Msg.MATH_HEX,"hex"]];this.setColour(Te),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Et.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Et.Msg.MATH_DEC_TOOLTIP_BIN,oct:Et.Msg.MATH_DEC_TOOLTIP_OCT,hex:Et.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Ae={init:function(){var t=[[Et.Msg.LANG_MATH_TO_ROUND,"round"],[Et.Msg.LANG_MATH_TO_CEIL,"ceil"],[Et.Msg.LANG_MATH_TO_FLOOR,"floor"],[Et.Msg.MATH_ABS,"fabs"],[Et.Msg.MATH_SQRT,"sqrt"]];this.setColour(Te),this.appendValueInput("A").setCheck(Number).appendField(new Et.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Et.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Et.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Et.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Et.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Et.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Et.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Et.Msg.MIXLY_MAX,"max"],[Et.Msg.MIXLY_MIN,"min"]];this.setColour(Te),this.appendValueInput("A").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(new Et.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Et.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Et.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Et.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Se={init:function(){var t=[[Et.Msg.MATH_TWO,"two"],[Et.Msg.MATH_EIGHT,"eight"],[Et.Msg.MATH_TEN,"ten"],[Et.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Te),this.appendDummyInput("").appendField(Et.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Et.FieldDropdown(t),"OP").appendField(Et.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Et.Msg.MATH_ZHW).appendField(new Et.FieldDropdown(t),"OP2").appendField(Et.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:Et.Msg.MATH_Before_two,eight:Et.Msg.MATH_Before_eight,ten:Et.Msg.MATH_Before_ten,sixteen:Et.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Et.Msg.MATH_Behind_two,eight:Et.Msg.MATH_Behind_eight,ten:Et.Msg.MATH_Behind_ten,sixteen:Et.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},De={init:function(){var t=[[Et.Msg.LANG_MATH_INT,"int"],[Et.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Te),this.setOutput(!0,Number),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Et.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Et.Msg.LANG_MATH_INT,float:Et.Msg.LANG_MATH_FLOAT_RANDOM};return Et.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Le={init:function(){this.setColour(Te),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Et.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Et.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Et.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Et.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ne={init:function(){this.setColour(Te),this.appendValueInput("NUM",Number).appendField(Et.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Et.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Et.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_MATH_MAP)}},fe={init:function(){this.setColour(Te),this.appendDummyInput().appendField(new Et.FieldTextInput("0",Et.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Et.Msg.MATH_NUMBER_TOOLTIP)}},Fe={init:function(){this.setColour(Te),this.appendValueInput("NUM").setCheck(Number).appendField(Et.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ve={init:function(){this.setColour(Te),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Et.Msg.MATH_ROUND).appendField(Et.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Et.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Et.Msg.MATH_ROUND_NEW_TOOLTIP)}},Pe={init:function(){var t=[[Et.Msg.MIXLY_TO_INT,"int"],[Et.Msg.MIXLY_TO_FLOAT,"float"],[Et.Msg.MIXLY_TO_BITES,"b"],[Et.Msg.LANG_MATH_BYTE+Et.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Te),this.appendValueInput("VAR").appendField(new Et.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Et.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Et.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Et.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Ve={init:function(){var t=[[Et.Msg.MIXLY_TO_INT,"int"],[Et.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Te),this.appendValueInput("VAR").appendField(new Et.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Et.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Et.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ye=Ne,Ye={init:function(){this.setColour(Te),this.appendValueInput("VAR").appendField(Et.Msg.LANG_MATH_BYTE+Et.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},be={init:function(){this.setColour(Te),this.itemCount_=1,this.setMutator(new Et.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Et.Msg.MIXLY_PRODUCT+Et.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Et.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Et.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Et.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 He={init:function(){this.setColour(Ge),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Et.FieldTextInput("",Et.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Et.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Et.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(Ge),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Et.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},We={init:function(){this.setColour(Ge),this.appendValueInput("VAR").setCheck(Number).appendField(Et.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ke={init:function(){this.setColour(Ge),this.appendValueInput("VAR").setCheck(String).appendField(Et.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},qe={init:function(){this.setColour(Ge),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Qe={init:function(){this.setColour(Ge),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},je={init:function(){this.WHERE_OPTIONS=[[Et.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Et.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Et.Msg.TEXT_GET_INDEX_RANDOM+1+Et.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Et.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Et.Msg.LISTS_GET_INDEX_GET,"MODE"),Et.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Et.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=Et.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Et.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Et.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Et.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Et.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Et.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Et.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Et.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Et.Msg.TEXT_GET_INDEX_RANDOM};return Et.Msg.PROCEDURES_DEFRETURN_RETURN+Et.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Et.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Et.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),Et.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Et.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Et.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"),Et.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Je={init:function(){this.setHelpUrl(Et.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Et.Msg.LISTS_GET_INDEX_GET+" "+Et.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Et.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Et.Msg.PROCEDURES_DEFRETURN_RETURN+Et.Msg.MIXLY_MICROBIT_TYPE_STRING+Et.Msg.LISTS_GET_INDEX_FROM_START+"n"+Et.Msg.TEXT_CHARAT2)}},ze={init:function(){this.setHelpUrl(Et.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Et.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Et.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ze={init:function(){this.WHERE_OPTIONS_1=[[Et.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Et.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Et.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Et.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Et.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Et.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Et.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ge),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Et.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(Et.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Et.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Et.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),Et.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Et.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Et.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"))}},$e={init:function(){this.setHelpUrl(Et.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Et.Msg.LISTS_GET_INDEX_GET+" "+Et.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Et.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Et.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Et.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},ti={init:function(){var t=[[Et.Msg.MIXLY_EQUALS,"==="],[Et.Msg.MIXLY_STARTSWITH,"startswith"],[Et.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Et.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ei={init:function(){this.setColour(Ge),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Et.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_COMPARETO_HELP)}},ii={init:function(){var t=[[Et.Msg.TEXT_UPPER,"upper"],[Et.Msg.TEXT_TITLE,"title"],[Et.Msg.TEXT_CAPITALIZE,"capitalize"],[Et.Msg.TEXT_SWAPCASE,"swapcase"],[Et.Msg.TEXT_LOWER,"lower"]];this.setColour(Ge),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Et.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Et.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Et.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Et.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Et.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Et.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ni={init:function(){var t=[[Et.Msg.TEXT_LJUST,"ljust"],[Et.Msg.TEXT_CENTER,"center"],[Et.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ge),this.appendValueInput("VAR").appendField(new Et.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Et.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Et.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},si={init:function(){this.setColour(Ge),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Et.Msg.MIXLY_MID+Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Et.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},oi={init:function(){this.setColour(Ge),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Et.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Et.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},pi={init:function(){this.setColour(Ge),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Et.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Et.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ui={init:function(){this.setColour(Ge),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Et.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Et.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Et.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ai={init:function(){var t=[[Et.Msg.TEXT_TRIM_BOTH,"strip"],[Et.Msg.TEXT_TRIM_LEFT,"lstrip"],[Et.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ge),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Et.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Et.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Et.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Et.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Et.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Et.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},li={init:function(){this.setColour(Ge),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Et.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Et.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Et.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){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},pn={init:function(){this.setColour(sn),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},un={init:function(){this.setColour(sn),this.appendDummyInput().appendField(Et.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},an={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.DICT_KEYS),this.setTooltip(Et.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Et.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Et.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Et.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Et.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Et.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Et.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Et.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},rn={init:function(){this.setColour(sn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Et.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Et.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},dn={init:function(){this.setColour(sn),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Et.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Et.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_DELETE_TOOLTIP)}},In={init:function(){this.setColour(sn),this.appendValueInput("DICT2").setCheck("Dict").appendField(Et.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Et.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MID),this.setTooltip(Et.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.DICT_CLEAR),this.setTooltip(Et.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hn={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.DICT_ITEMS),this.setTooltip(Et.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},mn={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.DICT_VALUES),this.setTooltip(Et.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},On={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_LENGTH),this.setTooltip(Et.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},cn={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.DICT_DELDICT),this.setTooltip(Et.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rn={init:function(){this.MODE=[[Et.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Et.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Et.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Et.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=Et.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Et.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Et.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 Et.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(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Et.Msg.DICTS_ADD_VALUE),this.setTooltip(Et.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},En={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Et.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Et.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Cn={init:function(){this.setColour(sn),this.appendDummyInput("").appendField(new Et.FieldLabel(Et.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 Et.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Et.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){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},An={init:function(){this.setColour(sn),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},gn={init:function(){this.setColour(sn),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_TO_JSON),this.setTooltip(Et.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Sn={init:function(){this.setColour(sn),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Et.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Dn={init:function(){this.setColour(sn),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(Et.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Ln={init:function(){this.setColour(sn),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_TO_JSON),this.setTooltip(Et.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Nn=210,fn={init:function(){var t=Et.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Nn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Et.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Et.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Et.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Et.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Et.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Et.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Et.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Fn={init:function(){var t=Et.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Et.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Nn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Et.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Et.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},vn={init:function(){var t=[[Et.Msg.LOGIC_OPERATION_AND,"AND"],[Et.Msg.LOGIC_OPERATION_OR,"OR"],[Et.Msg.LOGIC_OPERATION_NOR,"NOR"],[Et.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Nn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Et.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Et.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Et.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Et.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Et.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Pn={init:function(){this.setColour(Nn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Et.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Et.Msg.LOGIC_NEGATE_TOOLTIP)}},Vn={init:function(){var t=[[Et.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Et.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Nn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Et.FieldDropdown(t),"BOOL"),this.setTooltip(Et.Msg.LOGIC_BOOLEAN_TOOLTIP)}},yn={init:function(){this.setColour(Nn),this.setOutput(!0),this.appendDummyInput().appendField(Et.Msg.LOGIC_NULL),this.setTooltip(Et.Msg.LOGIC_NULL_TOOLTIP)}},Yn={init:function(){this.setColour(Nn),this.appendValueInput("A"),this.appendValueInput("B").appendField(Et.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Et.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},bn={init:function(){var t=[[Et.Msg.TEXT_APPEND_TO,"in"],[Et.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Nn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Et.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Et.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Et.Msg.IN)}},kn={init:function(){var t=[[Et.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Et.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Nn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Et.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Xn={init:function(){this.setColour(Nn),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Et.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Gn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Et.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"],[Et.Msg.MIXLY_ADD,"a"],[Et.Msg.MATH_BIN+Et.Msg.MIXLY_ADD,"ab"],[Et.Msg.MIXLY_R_W,"r+"],[Et.Msg.MATH_BIN+Et.Msg.MIXLY_R_W,"rb+"],[Et.Msg.MIXLY_W_R,"w+"],[Et.Msg.MATH_BIN+Et.Msg.MIXLY_W_R,"wb+"],[Et.Msg.MIXLY_A_R,"a+"],[Et.Msg.MATH_BIN+Et.Msg.MIXLY_A_R,"ab+"]]),"MODE"),this.appendValueInput("FILE").appendField(Et.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=Et.Msg.MIXLY_USE,n=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Et.Msg.MIXLY_BELONG;return i+{r:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Un={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Et.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=Et.Msg.MIXLY_USE,n=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Et.Msg.MIXLY_BELONG,p=Et.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+p}))}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Et.Msg.MIXPY_TEXT_ENCODE).appendField(new Et.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=Et.Msg.MIXLY_USE,n=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Et.Msg.MIXLY_BELONG,p=Et.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+p}))}},Hn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Et.Msg.MIXLY_MICROBIT_TYPE_STRING+Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Et.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=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Et.Msg.MICROBIT_PYTHON_TYPE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Et.Msg.HTML_FILE),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Jn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Et.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Et.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(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Et.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Et.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=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},es={init:function(){this.setColour(0),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},is={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Et.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 Et.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Et.Msg.MIXLY_ESP32_SET+{mkdir:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ns={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Et.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},ss={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},os={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.HTML_FILE,"isfile"],[Et.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 Et.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Et.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Et.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},ps={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Et.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_SETUP+Et.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Et.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},us={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Et.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},as={init:function(){var t=Et.Procedures.findLegalName("",this),e=new Et.FieldTextInput(t,Et.Procedures.rename);e.setSpellcheck(!1),this.appendDummyInput().appendField(e,"NAME").appendField("","PARAMS"),this.setMutator(new Et.icons.MutatorIcon(["procedures_mutatorarg"],this)),(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Et.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Et.Msg.PROCEDURES_DEFNORETURN_COMMENT),this.setStyle("procedure_blocks"),this.setTooltip(Et.Msg.PROCEDURES_DEFNORETURN_TOOLTIP),this.setHelpUrl(Et.Msg.PROCEDURES_DEFNORETURN_HELPURL),this.arguments_=[],this.argumentVarModels_=[],this.setStatements_(!0),this.statementConnection_=null},setStatements_:function(t){this.hasStatements_!==t&&(t?(this.appendStatementInput("STACK").appendField(Et.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&this.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=t)},updateParams_:function(){var t="";this.arguments_.length&&(t=Et.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", ")),Et.Events.disable();try{this.setFieldValue(t,"PARAMS")}finally{Et.Events.enable()}},mutationToDom:function(t){var e=Et.utils.xml.createElement("mutation");t&&e.setAttribute("name",this.getFieldValue("NAME"));for(var i=0;i"),this.appendValueInput("style").appendField(Et.Msg.MIXLY_AIP_ATTR).setAlign(Et.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},no={init:function(){this.setColour(zs),this.appendDummyInput().appendField(Et.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},so={init:function(){this.setColour(zs),this.appendDummyInput().appendField(Et.Msg.HTML_FORM_CONTENT).appendField(new Et.FieldDropdown([[Et.Msg.HTML_TEXT,"text"],[Et.Msg.HTML_EMAIL,"email"],[Et.Msg.HTML_NUMBER,"number"],[Et.Msg.HTML_PASSWORD,"password"],[Et.Msg.HTML_CHECKBOX,"checkbox"],[Et.Msg.HTML_RADIOBUTTON,"radiobutton"],[Et.Msg.HTML_BUTTON,"button"],[Et.Msg.HTML_COLOUR,"colour"],[Et.Msg.HTML_DATE,"date"],[Et.Msg.HTML_LOCALTIME,"local time"],[Et.Msg.HTML_FILE,"file"],[Et.Msg.HTML_HIDDEN,"hidden"],[Et.Msg.HTML_IMAGE,"image"],[Et.Msg.HTML_MONTH,"month"],[Et.Msg.HTML_RANGE,"range"],[Et.Msg.HTML_RESET,"reset"],[Et.Msg.HTML_SEARCH,"search"],[Et.Msg.HTML_SUBMIT,"submit"],[Et.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Et.Msg.HTML_TIME,"time"],[Et.Msg.HTML_URL,"url"],[Et.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Et.Msg.HTML_NAME).appendField(new Et.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Et.Msg.HTML_VALUE).appendField(new Et.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Et.Msg.MIXLY_AIP_ATTR).setAlign(Et.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oo={init:function(){this.setColour(zs),this.appendDummyInput().appendField(new Et.FieldTextInput("property"),"KEY").appendField(":").appendField(new Et.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},po={init:function(){this.setColour(zs),this.appendDummyInput().appendField(new Et.FieldTextInput("property"),"KEY").appendField(":").appendField(new Et.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uo={init:function(){this.setColour(zs),this.appendDummyInput().appendField(Et.Msg.HTML_TEXT).appendField(new Et.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ao=160,lo={init:function(){this.setColour(ao),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Et.FieldTable(""),"TEXT")}},_o={init:function(){this.setColour(ao),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Et.FieldMultilineInput(""),"TEXT")}},ro={init:function(){this.setColour(ao),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Et.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Io={init:function(){this.setColour(ao),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},To={init:function(){this.setColour(ao),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Et.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},ho={init:function(){this.setColour(ao),this.appendValueInput("VALUE").appendField(Et.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},mo={init:function(){this.setColour(ao),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Et.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Et.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=Et.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+")"},Et.isNumber(n)&&Et.isNumber(s)&&Et.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 ra=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]},da=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Ia=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Ta=function(t,e){return["None",e.ORDER_ATOMIC]},ha=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]},ma=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]},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]},ca=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"},Ma=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ea=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ca=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"},ga=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Sa=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]},Na=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},fa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Fa=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Va=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ya=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"},Ya=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ba=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},ka=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Xa=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]},wa=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"},Ua=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"),Et.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]},gl=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Sl=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},Dl=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ll=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Nl=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},fl=function(t,e){return'"},Fl=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},vl=function(){return this.getFieldValue("TEXT")+"\n"},Pl=function(t){return t.getFieldValue("TEXT")+"\n"},Vl=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},yl=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Yl=function(){return""},bl=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},kl=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")},Ul.scrubNakedValue=function(t){return t+"\n"},Ul.quote_=function(t){var e="'";return-1!==t.indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Ul.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Ul.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=Et.utils.string.wrap(o,Ul.COMMENT_WRAP-3),n+=Ul.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const xl=100,Hl={init:function(){this.setColour(xl),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_SERVO).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SERVO_MOVE)}},Bl={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(new Et.FieldDropdown([["1","1"],["2","2"]]),"op"),this.setOutput(!0)}},Wl={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_ESP32_ON,"1"],[Et.Msg.MIXLY_ESP32_OFF,"0"],[Et.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Kl={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_SETTING).appendField(Et.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Et.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},ql={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Et.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Et.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Ql={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_SETTING).appendField(Et.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Et.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},jl={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Et.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Et.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_LED_SETONOFF)}},Jl={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Et.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Et.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_LED_GETONOFF)}},zl={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Et.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Et.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_LED_SETBRIGHT)}},Zl={init:function(){this.setColour(xl),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_TONE).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(Et.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},$l={init:function(){this.setColour(xl),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_TONE).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(Et.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Et.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},t_={init:function(){this.setColour(xl),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_NOTONE).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(xl),this.appendValueInput("TICKS").setCheck(Number).appendField(Et.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Et.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Et.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},i_={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},n_={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_RESET)}},s_={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Et.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},o_={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Et.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Et.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},p_={init:function(){this.setColour(xl),this.appendDummyInput().appendField(Et.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},u_={init:function(){this.setColour(xl),this.appendValueInput("LIST").appendField(Et.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},a_={init:function(){this.setColour(xl),this.appendValueInput("LIST").appendField(Et.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.appendValueInput("PIN").setCheck(Number).appendField(Et.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},l_={init:function(){this.setColour(xl),this.appendValueInput("LIST").appendField(Et.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.appendValueInput("PIN").setCheck(Number).appendField(Et.Msg.MIXLY_PIN),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_MIXGO_MUSIC_PLAY_TONE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_PLAYSHOW)}},__={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Et.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.MIXLY_RGB_PIN_COUNT)}},r_={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Et.Msg.MIXLY_RGB_NUM_R_G_B)}},d_={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_WRI)}},I_={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Et.Msg.MIXLY_RGB_NUM_R_G_B)}},T_={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Et.Msg.MIXLY_RGB_NUM_R_G_B)}},h_={init:function(){this.setColour(xl),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_WRI)}},m_=jl,O_=Jl,c_=zl,R_="#2FAD7A",M_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},E_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},C_={init:function(){this.jsonInit({inputsInline:!0,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(Et.CONTROLS_REPEAT_INPUT_DO)}},A_={init:function(){this.jsonInit({inputsInline:!0,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(Et.CONTROLS_REPEAT_INPUT_DO)}},g_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},S_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},D_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},L_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},N_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},f_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:Et.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"}]})}},F_={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},v_={init:function(){this.jsonInit({message0:Et.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[Et.Msg.MIXLY_PYTHON_PERIODIC,"False"],[Et.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(Et.CONTROLS_REPEAT_INPUT_DO)}},P_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:Et.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},V_={init:function(){this.jsonInit({inputsInline:!0,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:Et.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(Et.CONTROLS_REPEAT_INPUT_DO)}},y_={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:R_,helpUrl:Et.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:Et.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:Et.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"}]})}},Y_=120,b_={init:function(){this.setColour(Y_),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Et.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new Et.FieldDropdown(b_.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Et.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Et.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Et.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))},OPERATORS:[[Et.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Et.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]]},k_={init:function(){this.setColour(Y_);var t=new Et.FieldDropdown(k_.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Et.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Et.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(Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}},OPERATORS:[[Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Et.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]]},X_="5BA5A5",G_={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(X_),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_LET2).appendField(new Et.FieldDropdown(G_.OPERATORS),"OP"),this.appendValueInput("val").appendField(Et.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Et.Msg.DISPLAY_IMAGE_LET,n=Et.Msg.DISPLAY_IMAGE_LET2,s=Et.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Et.Msg.MIXLY_UP,down:Et.Msg.MIXLY_DOWN,left:Et.Msg.MIXLY_LEFT,right:Et.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Et.Msg.MIXLY_UP,"shift_up"],[Et.Msg.MIXLY_DOWN,"shift_down"],[Et.Msg.MIXLY_LEFT,"shift_left"],[Et.Msg.MIXLY_RIGHT,"shift_right"]]},w_={init:function(){this.appendValueInput("SUB").setCheck("var"),this.setColour(X_),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Et.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Et.FieldDropdown(w_.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Et.Msg.MIXLY_MICROBIT_image_add,"-":Et.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Et.Msg.MICROBIT_DISPLAY_UNION,"add"],[Et.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},U_={init:function(){this.setColour(X_),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Et.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Et.FieldDropdown(U_.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Et.Msg.MIXLY_MICROBIT_IMAGE+{height:Et.Msg.MIXLY_HEIGHT,width:Et.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[Et.Msg.MIXLY_HEIGHT,"height"],[Et.Msg.MIXLY_WIDTH,"width"]]},x_={init:function(){this.setColour(X_),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RECT).appendField(new Et.FieldDropdown(x_.STATUS),"OP"),this.jsonInit({message0:Et.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(Et.Msg.MIXLY_OLED_RECT)},STATUS:[[Et.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Et.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},H_={init:function(){this.setColour(X_),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Et.FieldDropdown(H_.STATUS),"OP"),this.jsonInit({message0:Et.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(Et.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[Et.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Et.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},B_={init:function(){this.setColour(X_),this.appendValueInput("SUB").setCheck("var").appendField(Et.Msg.MSG.catOLED),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_LET2).appendField(new Et.FieldDropdown(B_.OPERATORS),"OP"),this.appendValueInput("val").appendField(Et.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Et.Msg.DISPLAY_IMAGE_LET,n=Et.Msg.DISPLAY_IMAGE_LET2,s=Et.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Et.Msg.MIXLY_UP,down:Et.Msg.MIXLY_DOWN,left:Et.Msg.MIXLY_LEFT,right:Et.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Et.Msg.MIXLY_UP,"shift_up"],[Et.Msg.MIXLY_DOWN,"shift_down"],[Et.Msg.MIXLY_LEFT,"shift_left"],[Et.Msg.MIXLY_RIGHT,"shift_right"]]},W_="#569A98",K_={init:function(){this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Et.inputs.Align.CENTRE).appendField(new Et.FieldBitmap(K_.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(W_),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(32).fill(0)))},q_={init:function(){this.setColour(W_),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Et.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Et.FieldDropdown(q_.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Et.Msg.MIXLY_MICROBIT_image_add,"-":Et.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Et.Msg.MICROBIT_DISPLAY_UNION,"add"],[Et.Msg.MICROBIT_DISPLAY_MINUS,"sub"]]},Q_={init:function(){this.setColour(W_),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_LET),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_LET2).appendField(new Et.FieldDropdown(Q_.OPERATORS),"OP"),this.appendValueInput("val").appendField(Et.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_UNIT),["Python ESP32-S3","Python ESP32-C5"].includes(Ct.JSFuncs.getPlatform())&&this.appendValueInput("boolean").appendField(Et.Msg.MIXLY_synchronize);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Et.Msg.DISPLAY_IMAGE_LET,n=Et.Msg.DISPLAY_IMAGE_LET2,s=Et.Msg.DISPLAY_IMAGE_LET3;return i+n+{shift_up:Et.Msg.MIXLY_UP,shift_down:Et.Msg.MIXLY_DOWN,shift_left:Et.Msg.MIXLY_LEFT,shift_right:Et.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Et.Msg.MIXLY_UP,"shift_up"],[Et.Msg.MIXLY_DOWN,"shift_down"],[Et.Msg.MIXLY_LEFT,"shift_left"],[Et.Msg.MIXLY_RIGHT,"shift_right"]]},j_={init:function(){this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Et.inputs.Align.CENTRE).appendField(new Et.FieldBitmap(j_.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(W_),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(8).fill(0)))},J_={init:function(){this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Et.inputs.Align.CENTRE).appendField(new Et.FieldBitmap(J_.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(W_),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(12).fill(0)))},z_={init:function(){this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Et.inputs.Align.CENTRE).appendField(new Et.FieldBitmap(z_.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(W_),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:8},(()=>new Array(16).fill(0)))},Z_={init:function(){this.setColour(W_),this.appendDummyInput().appendField(Et.Msg.OLED_SET_FONT).appendField(new Et.FieldDropdown(Z_.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[["4x5"+Et.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'4x5'"],["5x5"+Et.Msg.MIXGO_ME_DISPLAY_HORIZONTAL,"'5x5'"],["5x8"+Et.Msg.MIXGO_ME_DISPLAY_VERTICAL,"'5x8'"]]},$_={init:function(){this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Et.inputs.Align.CENTRE).appendField(new Et.FieldBitmap($_.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(W_),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:5},(()=>new Array(5).fill(0)))},tr={init:function(){this.setColour(W_),this.appendDummyInput().appendField(Et.Msg.MIXLY_MIXBOT_SCREEN_ROTATE).appendField(new Et.FieldDropdown(tr.OPERATORS),"OP"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)},OPERATORS:[[Et.Msg.mixpy_PL_PIE_SHADOW_N,"0"],[Et.Msg.CLOCKWISE+"90"+Et.Msg.blockpy_setheading_degree,"1"],[Et.Msg.CLOCKWISE+"180"+Et.Msg.blockpy_setheading_degree,"2"],[Et.Msg.CLOCKWISE+"270"+Et.Msg.blockpy_setheading_degree,"3"]]},er={init:function(){this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE),this.appendDummyInput("").setAlign(Et.inputs.Align.CENTRE).appendField(new Et.FieldBitmap(er.BITMAP,null,{filledColor:"#000",emptyColor:"#5ba5a5",bgColor:"#e5e7f1"}),"BITMAP"),this.setOutput(!0),this.setColour(W_),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Create_image1)},BITMAP:Array.from({length:12},(()=>new Array(12).fill(0)))},ir=180,nr={colourOptions:["#f00","#000"],columns:2},sr={init:function(){this.jsonInit({colour:ir,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:Et.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Clear_display)}},or={init:function(){this.setColour(ir),this.appendValueInput("x").setCheck(Number).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},pr={init:function(){this.setColour(ir),this.appendValueInput("x").setCheck(Number).appendField(Et.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Et.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(Et.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},ur={init:function(){this.setColour(ir),this.appendValueInput("data").setCheck(String).appendField(new Et.FieldDropdown([[Et.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Et.Msg.MIXLY_ESP32_MONITOR_SCROLL,"scroll"]]),"MODE").appendField(Et.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=Et.Msg.OLED_DRAWSTR;return{show:Et.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},ar={init:function(){this.setColour(ir),this.appendValueInput("data").setCheck(String).appendField(new Et.FieldDropdown([[Et.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Et.Msg.MIXLY_ESP32_MONITOR_SCROLL,"scroll"]]),"MODE").appendField(Et.Msg.OLED_DRAWSTR),this.appendValueInput("time").setCheck(Number).appendField(Et.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=Et.Msg.OLED_DRAWSTR;return{show:Et.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},lr={init:function(){this.setColour(ir),this.appendValueInput("data").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_MONITOR_SHOW_STATIC),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_MUSIC_SHOW_STATIC)}},_r={init:function(){this.setColour(ir),this.appendValueInput("PIN",String).setCheck("esp32_image").appendField(Et.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.OLED_BITMAP)}},rr={init:function(){this.jsonInit({colour:ir,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:Et.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"}]})}},dr={init:function(){this.jsonInit({colour:ir,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:Et.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(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+Et.Msg.MIXLY_MICROBIT_Animate_images1)}},Ir={init:function(){this.jsonInit({colour:ir,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:Et.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Tr={init:function(){this.setColour(ir),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[Et.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(Et.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=Et.Msg.MIXLY_MICROBIT_monitor;return{on:Et.Msg.MIXLY_MICROBIT_Turn_on_display,off:Et.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},hr={init:function(){this.jsonInit({colour:ir,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:Et.Msg.MIXLY_MICROBIT_Turn_off_display})}},mr={init:function(){this.jsonInit({colour:ir,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:Et.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Display_is_on1)}},Or={init:function(){this.jsonInit({colour:ir,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:Et.Msg.MIXLY_MICROBIT_Built_in_image1,message0:Et.Msg.MIXLY_MICROBIT_Built_in_image})}},cr={init:function(){this.jsonInit({colour:ir,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:Et.Msg.MIXLY_ESP32_Create_image}),this.setTooltip(Et.Msg.MIXLY_MICROBIT_Create_image1)}},Rr={init:function(){this.setColour(ir),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(Et.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_LET2).appendField(new Et.FieldDropdown(Rr.OPERATORS),"OP"),this.appendValueInput("val").appendField(Et.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Et.Msg.DISPLAY_IMAGE_UNIT);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP"),i=Et.Msg.DISPLAY_IMAGE_LET,n=Et.Msg.DISPLAY_IMAGE_LET2,s=Et.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Et.Msg.MIXLY_UP,down:Et.Msg.MIXLY_DOWN,left:Et.Msg.MIXLY_LEFT,right:Et.Msg.MIXLY_RIGHT}[e]+s}))},OPERATORS:[[Et.Msg.MIXLY_UP,"up"],[Et.Msg.MIXLY_DOWN,"down"],[Et.Msg.MIXLY_LEFT,"left"],[Et.Msg.MIXLY_RIGHT,"right"]]},Mr={init:function(){this.setColour(ir),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Et.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Et.FieldDropdown(Mr.OPERATORS),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{"+":Et.Msg.MIXLY_MICROBIT_image_add,"-":Et.Msg.MIXLY_MICROBIT_image_reduce}[e]}))},OPERATORS:[[Et.Msg.MICROBIT_DISPLAY_UNION,"+"],[Et.Msg.MICROBIT_DISPLAY_MINUS,"-"]]},Er={init:function(){this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING,"scroll"]]),"MODE"),this.jsonInit({colour:ir,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:Et.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=Et.Msg.OLED_DRAWSTR;return Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+{show:Et.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},Cr={init:function(){this.setColour(ir),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(Et.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},Ar={init:function(){this.setColour(ir),this.appendValueInput("device").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_SETUP).appendField(Et.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(Et.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_SETUP+Et.Msg.MIXLY_DF_LCD+Et.Msg.MIXLY_LCD_ADDRESS)}},gr={init:function(){this.setColour(ir),this.appendValueInput("row",Number).setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(Et.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},Sr={init:function(){this.setColour(ir),this.appendDummyInput().appendField(Et.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_ON,"on()"],[Et.Msg.MIXLY_OFF,"off()"],[Et.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[Et.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(off)"],[Et.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 Et.Msg.LISTS_SET_INDEX_SET+Et.Msg.MIXLY_DF_LCD+{"on()":Et.Msg.MIXLY_ON,"off()":Et.Msg.MIXLY_OFF,"clear()":Et.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":Et.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":Et.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},Dr={init:function(){this.setColour(ir),this.appendValueInput("I2CSUB").appendField(Et.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(Et.Msg.MIXLY_SETUP+Et.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()}},Lr={init:function(){this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.OLEDDISPLAY+Et.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(ir),this.setTooltip(Et.Msg.MIXLY_DF_LCD+Et.Msg.OLEDDISPLAY+Et.Msg.MIXLY_MICROBIT_TYPE_STRING)}},Nr={init:function(){this.setColour(ir),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Et.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Et.FieldDropdown(Nr.OPERATORS),"OP"),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Et.Msg.MIXLY_MICROBIT_IMAGE+{height:Et.Msg.MIXLY_HEIGHT,width:Et.Msg.MIXLY_WIDTH}[e]}))},OPERATORS:[[Et.Msg.MIXLY_HEIGHT,"height"],[Et.Msg.MIXLY_WIDTH,"width"]]},fr={init:function(){this.setColour(ir),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RECT).appendField(new Et.FieldDropdown(fr.STATUS),"OP"),this.jsonInit({message0:Et.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(Et.Msg.MIXLY_OLED_RECT)},STATUS:[[Et.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Et.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Fr={init:function(){this.setColour(ir),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_DISPLAY_DRAW).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_DISPLAY_RLINE,"hline"],[Et.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:Et.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(Et.Msg.MIXLY_OLED_LINE)}},vr={init:function(){this.setColour(ir),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.jsonInit({message0:Et.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(Et.Msg.MIXLY_OLED_LINE_ARBIT)}},Pr={init:function(){this.setColour(ir),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},Vr={init:function(){this.setColour(ir),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(Et.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},yr={init:function(){this.setColour(ir),this.appendValueInput("x").setCheck(Number).appendField(Et.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)}},Yr={init:function(){this.setColour(ir),this.appendValueInput("x").setCheck(Number).appendField(Et.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},br={init:function(){this.setColour(ir),this.appendDummyInput("").appendField(Et.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(Et.Msg.LISTS_SET_INDEX_SET+Et.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new Et.FieldColour("#f00",null,nr),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Et.Msg.MIXLY_RGB_NUM_R_G_B)}},kr={init:function(){this.setColour(ir),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Et.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.OLED_BITMAP_OR_STRING)}},Xr={init:function(){this.setColour(ir),this.appendValueInput("data").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Gr={init:function(){this.setColour(ir),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Et.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION),this.appendValueInput("time").setCheck(Number).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},wr={init:function(){this.setColour(ir),this.appendValueInput("data").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("time").setCheck(Number).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},Ur={init:function(){this.setColour(ir),this.appendDummyInput("").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_ESP32_ON,"ON"],[Et.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},xr={init:function(){this.setColour(ir),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[Et.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:Et.Msg.MIXLY_LCD_STAT_CLEAR,1:Et.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return Et.Msg.MIXLY_DF_LCD+i[e]}))}},Hr={init:function(){this.setColour(ir),this.appendValueInput("I2CSUB").appendField(Et.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_SETUP+Et.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Et.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 Et.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},Br={init:function(){this.setColour(ir),this.appendDummyInput().appendField(Et.Msg.MIXLY_4DIGITDISPLAY).appendField(new Et.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_ON,"_on"],[Et.Msg.MIXLY_OFF,"_off"],[Et.Msg.MIXLY_LCD_STAT_CLEAR,"_clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},Wr={init:function(){this.setColour(ir),this.appendDummyInput().appendField(Et.Msg.MIXLY_4DIGITDISPLAY).appendField(new Et.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Kr={init:function(){this.setColour(ir),this.appendDummyInput().appendField(Et.Msg.MIXLY_4DIGITDISPLAY).appendField(new Et.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(Et.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(Et.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+Et.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},qr={init:function(){this.setColour(ir),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new Et.FieldDropdown(qr.ANIMATE),"ANIMATION")},ANIMATE:[["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]},Qr={init:function(){this.setColour(ir),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Et.FieldDropdown(Qr.STATUS),"OP"),this.jsonInit({message0:Et.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(Et.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)},STATUS:[[Et.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Et.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},jr={init:function(){this.setColour(ir),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_DISPLAY_DRAW+Et.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new Et.FieldDropdown(jr.STATUS),"OP"),this.jsonInit({message0:Et.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(Et.Msg.MIXLY_DISPLAY_DRAW+Et.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)},STATUS:[[Et.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Et.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]]},Jr={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(Et.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},zr={init:function(){this.setColour(ir),this.appendValueInput("VAR").appendField(Et.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(Et.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(Et.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(Et.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(Et.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(Et.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.OLED_SHOW_BMP_TOOLTIP)}},Zr={init:function(){this.setColour(ir),this.appendValueInput("VAR").appendField(Et.Msg.OLED),this.appendDummyInput("").appendField(Et.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(Et.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(Et.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.OLED_DRAW_PIXE_TOOLTIP)}},$r={init:function(){this.setColour(ir),this.appendValueInput("I2CSUB").appendField(Et.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_SETUP+Et.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Et.FieldDropdown([["32x12 Matrix","32x12 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},td={init:function(){this.setColour(ir),this.appendValueInput("SUB"),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Et.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.OLED_BITMAP_OR_STRING)}},ed={init:function(){this.setColour(ir),this.appendValueInput("SUB"),this.appendValueInput("data").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},id="#526FC3",nd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Et.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Et.Msg.HTML_PASSWORD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},sd={init:function(){this.setColour(id),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"+Et.Msg.TUPLE_JOIN),this.appendValueInput("CLIENT").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_CLIENT),this.appendValueInput("SERVER").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_SERVER),this.appendValueInput("USERNAME").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_USERNAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_PASSWORD),this.appendValueInput("TOPIC").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_TOPIC),this.appendValueInput("SUB").appendField(Et.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP)}},od={init:function(){this.setColour(id),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP)}},pd={init:function(){this.setColour(id),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP)}},ud={init:function(){this.setColour(id),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendValueInput("DICT").appendField(Et.Msg.MIXLY_ESP32_PUBLISH_ONENET),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA).appendField(new Et.FieldCheckbox("TRUE"),"is_print"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP)}},ad={init:function(){this.setColour(id),this.appendValueInput("VAR").setCheck("var").appendField("OneNET").setAlign(Et.inputs.Align.RIGHT),this.appendDummyInput().appendField(new Et.FieldLabel(Et.Msg.MIXLY_ESP32_PUBLISH_ONENET),"TIP").setAlign(Et.inputs.Align.RIGHT),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Et.icons.MutatorIcon(["iot_publish_item"],this)),this.setTooltip(Et.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){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ld={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},_d={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},rd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Et.Msg.MIXLY_EMQX_SERVER).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Et.Msg.MIXLY_WIFI_USERNAME).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Et.Msg.MIXLY_IOT_PASSWORD).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Et.Msg.MIXLY_EMQX_PROJECT).setAlign(Et.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Id={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Et.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Et.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},Td={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Et.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Et.Msg.HTML_BODY),this.appendDummyInput().appendField(Et.Msg.MIXLY_Service_quality_display).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_AT_MOST_ONCE,"0"],[Et.Msg.MIXLY_AT_LEAST_ONCE,"1"]]),"quality"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},hd={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_EMQX_SUBSCRIBE+Et.Msg.MIXLY_MICROBIT_MSG).appendField(Et.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Et.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},md={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Od={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Et.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cd={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Rd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Et.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Md={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Et.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Ed={init:function(){this.setColour(id),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Cd={init:function(){this.setColour(id),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Ad={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Et.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},gd={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO").appendField(Et.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Et.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Sd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Et.Msg.MIXLY_EMQX_SERVER).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Et.Msg.CONTROLS_FOR_INPUT_WITH+Et.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Et.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Dd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Et.Msg.MIXLY_EMQX_SERVER).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Et.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Et.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ld={init:function(){this.VISITOR_ID=Ct.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(id),this.appendDummyInput("").appendField(new Et.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")}},Nd={init:function(){this.setColour(id),this.appendDummyInput().appendField("MixIO").appendField(Et.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},fd={init:function(){this.setColour(id),this.appendDummyInput().appendField("HTTP"+Et.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Et.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Et.Msg.MIXLY_REQUESTS_GET).appendField(Et.Msg.MIXLY_GET_CURRENT_TIME).appendField(Et.Msg.MIXLY_OPEN_DEBUG).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Et.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fd={init:function(){this.setColour(id),this.appendDummyInput().appendField("HTTP"+Et.Msg.MIXLY_Client).appendField(Et.Msg.MIXLY_GET).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Et.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Et.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},vd={init:function(){this.setColour(id),this.appendDummyInput().appendField("MQTT"+Et.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Et.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Et.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Et.Msg.MQTT_Topic).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Et.Msg.MIXLY_OPEN_DEBUG).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Et.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pd={init:function(){this.setColour(id),this.appendDummyInput().appendField("MQTT"+Et.Msg.MIXLY_Client).appendField(Et.Msg.MIXLY_GET).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Et.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Et.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Vd=nd,yd=sd,Yd=od,bd=pd,kd=ad,Xd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_CONNECT_OLLAMA),this.appendValueInput("SERVER").appendField(Et.Msg.MIXLY_EMQX_SERVER).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(Et.Msg.MODEL_NAME).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(Et.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gd=Xd,wd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_CONNECT_OPENAI),this.appendValueInput("SERVER").appendField(Et.Msg.MIXLY_EMQX_SERVER).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Et.Msg.MIXLY_API_PRIVATE_KEY).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("NAME").appendField(Et.Msg.MODEL_NAME).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("NUMBER").appendField(Et.Msg.MIXLY_SET_MAXIMUM_HISTORICAL_SESSIONS_NUM),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ud={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendValueInput("METHOD").appendField(Et.Msg.MIXLY_LLM_CONTENT_CALLBACK),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xd={init:function(){this.setColour(id),this.appendDummyInput().appendField(Et.Msg.MIXLY_LLM_CHAT),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_MIXGO_ESPNOW_SEND),this.appendDummyInput().appendField(Et.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0)}},Hd={init:function(){this.setColour(id),this.appendDummyInput().appendField("Ollama "+Et.Msg.MIXLY_EMPTY_HISTORY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bd={init:function(){this.setColour(0),this.appendDummyInput().appendField(`${Et.Msg.MIXLY_SETUP} TinyWebDB`),this.appendValueInput("ADDR").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_EMQX_SERVER),this.appendValueInput("USERNAME").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_EMQX_USERNAME),this.appendValueInput("PASSWORD").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_IOT_PASSWORD),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wd={init:function(){this.setColour(0),this.appendDummyInput().appendField(`${Et.Msg.MIXLY_SETUP} TinyWebDB`),this.appendValueInput("MQTT").setAlign(Et.inputs.Align.RIGHT).appendField(`MixIO ${Et.Msg.MIXLY_Client}`),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Kd={init:function(){this.setColour(0),this.appendDummyInput().appendField("TinyWebDB"),this.appendValueInput("TAG").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_TINY_WEB_DB_UPDATE_VARIABLE),this.appendValueInput("VALUE").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qd={init:function(){this.setColour(0),this.appendDummyInput().appendField("TinyWebDB"),this.appendValueInput("TAG").appendField(Et.Msg.MIXLY_TINY_WEB_DB_GET_VARIABLE),this.appendDummyInput().appendField(Et.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setOutput(!0)}},Qd={init:function(){this.setColour(0),this.appendDummyInput().appendField("TinyWebDB"),this.appendDummyInput().appendField(Et.Msg.MIXLY_TINY_WEB_DB_GET_VARIABLES_NUM),this.setInputsInline(!0),this.setOutput(!0)}},jd={init:function(){this.setColour(0),this.appendDummyInput().appendField("TinyWebDB").appendField(Et.Msg.MIXLY_TINY_WEB_DB_SEARCH_VARIABLES),this.appendValueInput("NO").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_TINY_WEB_DB_START_NUMBER),this.appendValueInput("COUNT").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_TINY_WEB_DB_VARIABLE_NUMBER),this.appendValueInput("TAG").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_TINY_WEB_DB_SEARCH_VARS),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_TINY_WEB_DB_GET_VARIABLES_ALL,"both"],[Et.Msg.MIXLY_TINY_WEB_DB_GET_VARIABLES_TAG,"tag"],[Et.Msg.MIXLY_TINY_WEB_DB_GET_VARIABLES_VALUE,"value"]]),"DTYPE"),this.setInputsInline(!1),this.setOutput(!0)}},Jd={init:function(){this.setColour(0),this.appendDummyInput().appendField("TinyWebDB"),this.appendValueInput("TAG").appendField(Et.Msg.MIXLY_TINY_WEB_DB_DELETE_VARIABLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zd=225,Zd={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Et.Msg.MIXLY_NETWORK_MODE).appendField(new Et.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},$d={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Et.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Et.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=Et.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Et.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Et.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},tI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},eI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Et.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Et.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},iI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Et.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Et.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},nI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_NETWORK_WIFI_CONNECT+Et.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},sI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Et.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Et.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 Et.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Et.Msg.MIXLY_ESP32_NETWORK_IP,1:Et.Msg.MIXLY_ESP32_NETWORK_MASK,2:Et.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},oI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},pI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Et.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},uI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.LISTS_SET_INDEX_SET+Et.Msg.MIXLY_HOTSPOT),this.appendValueInput("essid").setCheck(String).appendField(Et.Msg.MIXLY_NAME),this.appendValueInput("password").setCheck(String).appendField(Et.Msg.MIXLY_EMQX_PASSWORD),this.appendValueInput("channel").setCheck(Number).appendField(Et.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},aI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Et.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},lI={init:function(){this.setColour(zd),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Et.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 Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},_I={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},rI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},dI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},II={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},TI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_READLINE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_MICROPYTHON_SOCKET_READLINE_TOOLTIP)}},hI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},mI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},OI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},cI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},RI={init:function(){this.setColour(zd),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},MI={init:function(){this.setColour(zd),this.appendValueInput("DOMAIN").appendField(Et.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Et.Msg.blockpy_REQUESTS_GET).appendField(new Et.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},EI={init:function(){this.appendValueInput("VAL"),this.setColour(zd),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Et.FieldDropdown(EI.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{clear:Et.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Et.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Et.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[e]}))},ATTR:[[Et.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Et.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Et.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Et.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]]},CI={init:function(){this.appendValueInput("VAR").appendField(Et.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.setColour(zd),this.appendDummyInput("").appendField(Et.Msg.blockpy_CONDUCT).appendField(new Et.FieldDropdown(CI.METHOD),"DIR"),this.appendDummyInput("").appendField(Et.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:Et.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Et.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))},METHOD:[["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]},AI={init:function(){this.setColour(zd),this.appendDummyInput("").appendField(Et.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Et.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},gI={init:function(){this.setColour(zd),this.appendDummyInput("").appendField(new Et.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)}},SI="#3288dd",DI={init:function(){this.setColour(SI),this.appendValueInput("URL").appendField(Et.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Et.Msg.blockpy_CONDUCT).appendField(new Et.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Et.Msg.blockpy_REQUESTS).appendField(Et.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},LI={init:function(){this.setColour(SI),this.appendValueInput("URL").appendField(Et.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Et.Msg.blockpy_CONDUCT).appendField(new Et.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Et.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Et.Msg.blockpy_REQUESTS+Et.Msg.OLED_STRING),this.appendDummyInput("").appendField(Et.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},NI={init:function(){this.appendValueInput("VAL"),this.setColour(SI),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Et.FieldDropdown(NI.ATTR),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)},ATTR:[[Et.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Et.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Et.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Et.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Et.Msg.MIXPY_TEXT_ENCODE,"encoding"]]},fI={init:function(){this.setColour(SI),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Et.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Et.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Et.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Et.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},FI={init:function(){this.setColour(SI),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Et.Msg.MIXLY_EMQX_SERVER).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Et.Msg.MIXLY_EMQX_PORT).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Et.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Et.Msg.MIXLY_WIFI_USERNAME).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Et.Msg.MIXLY_IOT_PASSWORD).setAlign(Et.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vI={init:function(){this.setColour(SI),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_EMQX_SUBSCRIBE+Et.Msg.MIXLY_MICROBIT_MSG).appendField(Et.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Et.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},PI={init:function(){this.setColour(SI),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_EMQX_SUBSCRIBE+Et.Msg.MIXLY_MICROBIT_MSG).appendField(Et.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Et.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VI={init:function(){this.setColour(SI),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Et.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Et.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Et.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yI={init:function(){this.setColour(SI),this.appendDummyInput().appendField("mqtt"+Et.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},YI="#A58C5B",bI={init:function(){this.setColour(YI),this.appendValueInput("PIN",Number).appendField(new Et.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Et.FieldDropdown(bI.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[Et.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Et.Msg.MIXLY_GETHUMIDITY,"humidity"]]},kI=(Et.Msg.PS2_TRIANGLE,Et.Msg.PS2_CIRCLE,Et.Msg.PS2_CROSS,Et.Msg.PS2_SQUARE,Et.Msg.PS2_L1,Et.Msg.PS2_L2,Et.Msg.PS2_R1,Et.Msg.PS2_R2,Et.Msg.PS2_UP,Et.Msg.PS2_RIGHT,Et.Msg.PS2_DOWN,Et.Msg.PS2_LEFT,Et.Msg.PS2_SELECT,Et.Msg.PS2_START,{init:function(){this.setColour(YI),this.appendDummyInput("").appendField(Et.Msg.PS2_stick).appendField(new Et.FieldDropdown(kI.PSSTK),"psstk"),this.setOutput(!0,Number),this.setTooltip("")},PSSTK:[[Et.Msg.PS2_RX,"0"],[Et.Msg.PS2_RY,"1"],[Et.Msg.PS2_LX,"2"],[Et.Msg.PS2_LY,"3"]]}),XI={init:function(){this.setColour(YI),this.appendValueInput("SUB").appendField(Et.Msg.PS2),this.appendDummyInput("").appendField(Et.Msg.MIXLY_JOYSTICK).appendField(new Et.FieldDropdown(XI.PSSTK),"psstk"),this.setOutput(!0,Number),this.setTooltip("")},PSSTK:[[Et.Msg.PS2_RX,"RX"],[Et.Msg.PS2_RY,"RY"],[Et.Msg.PS2_LX,"LX"],[Et.Msg.PS2_LY,"LY"]]},GI=40,wI={init:function(){this.setColour(GI),this.appendValueInput("PIN",Number).appendField(new Et.FieldDropdown([["DHT11","dht11"],["DHT22","dht22"]]),"TYPE").appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Et.FieldDropdown(wI.METHOD),"WHAT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("WHAT");return{temperature:Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[e]}))},METHOD:[[Et.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Et.Msg.MIXLY_GETHUMIDITY,"relative_humidity"],[Et.Msg.MIXLY_DHT11_T_H,"tempandhum"]]},UI=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"},xI=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"},HI=function(t,e){return e.definitions_.import_music="import music","music.stop("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")\n"},BI=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"},WI=function(t,e){e.definitions_.import_music="import music";return["music.get_tempo()",e.ORDER_ATOMIC]},KI=function(t,e){return e.definitions_.import_music="import music","music.pitch("+e.valueToCode(this,"pitch",e.ORDER_ATOMIC)+")\n"},qI=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"},QI=function(t,e){e.definitions_.import_music="import music";return"music.stop()\n"},jI=function(t,e){return e.definitions_.import_music="import music","music.play("+e.valueToCode(this,"LIST",e.ORDER_ASSIGNMENT)+")\n"},JI=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"},zI=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"},ZI=function(t,e){return e.definitions_.import_music="import music","music.reset()\n"},$I=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"},tT=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},eT=function(t,e){return[this.getFieldValue("flag"),e.ORDER_ATOMIC]},iT=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"},nT=function(t,e){return e.definitions_.import_mixgo="import mixgo",["mixgo.led("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+").getonoff()",e.ORDER_ATOMIC]},sT=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"},oT=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"},pT=function(t,e){return e.definitions_.import_mixgo="import mixgo",["mixgo.led"+e.valueToCode(this,"led",e.ORDER_ATOMIC)+".getonoff()",e.ORDER_ATOMIC]},uT=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"},aT=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"},lT=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"},_T=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"},rT=function(t,e){e.definitions_.import_mixgo="import mixgo";return"mixgo.rgb.write()\n"},dT=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"},IT=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"},TT=oT,hT=pT,mT=uT,OT=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""},cT=function(t,e){return"blynk.virtual_sync("+e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC)+")\n"},RT=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,""},MT=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,""},ET=function(){return"blynk_timer.run()\n"},CT=function(){return"blynk.run()\n"},AT=function(t,e){return"blynk.notify("+e.valueToCode(this,"notification",e.ORDER_ATOMIC)+")\n"},gT=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`},ST=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]},DT=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,""},LT=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"},NT=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,""},fT=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`},FT=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`},vT=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 PT=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.show("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VT=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},yT=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.showstatic("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},YT=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"},bT=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"},kT=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]},XT=function(t,e){return e.definitions_.import_matrix="import matrix",["matrix.Image."+t.getFieldValue("image"),e.ORDER_ATOMIC]},GT=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]},wT=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"},UT=function(t,e){e.definitions_.import_matrix="import matrix";return["matrix.get_brightness()",e.ORDER_ATOMIC]},xT=function(t,e){e.definitions_.import_matrix="import matrix";return["matrix.get_screenimage()",e.ORDER_ATOMIC]},HT=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},BT=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.blink_rate("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},WT=function(t,e){e.definitions_.import_matrix="import matrix";return"matrix.clear()\n"},KT=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"},qT=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"},QT=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"},jT=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},JT=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]},zT=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"},ZT=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},$T=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]},th=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"},eh=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},ih=function(t,e){var i=this.getFieldValue("TYPE");return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+i+this.getFieldValue("STAT")+"()\n"},nh=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"},sh=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"},oh=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},ph=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},uh=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},ah=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"},lh=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"},_h=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},rh=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"},dh=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"},Ih=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"},Th=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"},hh=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return e.definitions_.import_onenet="import onenet",i+".do_disconnect()\n"},mh=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"},Oh=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return e.definitions_.import_onenet="import onenet",i+".check_msg()\n"},ch=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;t0?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"),_},Gm.scrubNakedValue=function(t){return t+"\n"},Gm.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},Gm.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Gm.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=Et.utils.string.wrap(o,Gm.COMMENT_WRAP-3),n+=Gm.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const wm={k210:{description:"MicroPython[K210_MixGo AI]",digital_pin:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P17","17"],["P18","18"],["P19","19"],["P20","20"],["P21","21"],["P22","22"],["P23","23"],["P24","24"],["P25","25"]],digital:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P17","17"],["P18","18"],["P19","19"],["P20","20"],["P21","21"],["P22","22"],["P23","23"],["P24","24"],["P25","25"],["P30","30"],["P31","31"],["P32","32"],["P33","33"],["P34","34"],["P35","35"]],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"]],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"]]}};wm["MixGo AI"]=wm.k210;const Um=wm,xm=100,Hm={init:function(){this.setColour(xm),this.appendDummyInput().appendField("初始化"),this.appendDummyInput().appendField("舵机"),this.appendValueInput("PIN",Number).appendField("管脚").setCheck(Number),this.appendValueInput("time").appendField("定时器").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Bm={init:function(){this.setColour(xm),this.appendDummyInput().appendField("设置"),this.appendDummyInput().appendField("舵机"),this.appendValueInput("PIN",Number).appendField("管脚").setCheck(Number),this.appendValueInput("range").appendField("角度").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Wm={init:function(){this.setColour(xm),this.appendDummyInput().appendField("初始化"),this.appendDummyInput().appendField("16路舵机"),this.appendValueInput("address").appendField("地址").setCheck(Number),this.appendValueInput("SUB").setCheck("var").setAlign(Et.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("使用PCA9685驱动16路舵机并备注IIC端口")}},Km={init:function(){this.setColour(xm),this.appendDummyInput().appendField("设置"),this.appendDummyInput().appendField("16路舵机"),this.appendValueInput("index").appendField("编号").setCheck(Number),this.appendValueInput("range").appendField("角度").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("使用PCA9685驱动16路舵机,输入编号机角度")}},qm={init:function(){this.setColour(xm),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendValueInput("PIN",Number).appendField("管脚").setCheck(Number),this.appendValueInput("num").appendField("灯数").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Qm={init:function(){this.setColour(xm),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendValueInput("num").appendField("灯号").setCheck(Number),this.appendValueInput("R").appendField("R值").setCheck(Number),this.appendValueInput("G").appendField("G值").setCheck(Number),this.appendValueInput("B").appendField("B值").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},jm={init:function(){this.setColour(xm),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendDummyInput().appendField("生效"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Jm={init:function(){this.setColour(xm),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Et.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Et.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},zm={init:function(){this.setColour(xm),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_Direction).appendField(new Et.FieldDropdown([[Et.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Et.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Et.Msg.MOTOR_N,"ms32006.MOT_N"],[Et.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Zm={init:function(){this.setColour(xm),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Et.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_Direction).appendField(new Et.FieldDropdown([[Et.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Et.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},$m={init:function(){this.setColour(xm),this.appendValueInput("SUB").setCheck("var").appendField("初始化"),this.appendValueInput("P",Number).appendField("P值").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("I",Number).appendField("I值").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("D",Number).appendField("D值").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("初始化PID算法")}},tO={init:function(){this.setColour(xm),this.appendValueInput("SUB").setCheck("var").appendField(""),this.appendDummyInput().appendField("运算"),this.appendValueInput("error").appendField("偏移量").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("scaler").appendField("定标量").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("根据参数返回运算结果")}},eO="#55839A",iO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField(new Et.FieldTextInput("anchor"),"VAR").appendField("锚点参数= (").appendField(new Et.FieldTextInput("1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025"),"TEXT").appendField(")"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("锚点参数")}},nO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField(new Et.FieldTextInput("calss"),"VAR").appendField("物品名称= [").appendField(new Et.FieldTextInput("'name1', 'name2', 'name3', 'name4'"),"TEXT").appendField("]"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("将要识别的物品名称")}},sO={init:function(){this.setColour(eO),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendValueInput("path").appendField("模型加载").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("从flash系统中加载模型")}},oO={init:function(){this.setColour(eO),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendValueInput("path").appendField("模型路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("从文件系统中加载模型")}},pO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("yolo2").appendField("初始化"),this.appendValueInput("SUB").setAlign(Et.inputs.Align.RIGHT).appendField("网络模型").setCheck("var"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("概率阈值").setCheck(Number),this.appendValueInput("nms_value").setAlign(Et.inputs.Align.RIGHT).appendField("box_iou门限").setCheck(Number),this.appendValueInput("anchor_num").setAlign(Et.inputs.Align.RIGHT).appendField("锚点数").setCheck(Number),this.appendValueInput("anchor").setAlign(Et.inputs.Align.RIGHT).appendField("锚点参数"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化yolo2网络")}},uO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("yolo2").appendField("运行网络"),this.appendValueInput("SUB").setAlign(Et.inputs.Align.RIGHT).appendField("模型").setCheck("var"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("运行yolo2网络")}},aO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("yolo2").appendField("前向运算"),this.appendValueInput("SUB").setAlign(Et.inputs.Align.RIGHT).appendField("模型").setCheck("var"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("运行网络前向运算")}},lO={init:function(){this.setColour(eO),this.appendDummyInput().appendField("yolo2").appendField("模型解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["坐标-x","x"],["坐标-y","y"],["标识号","classid"],["置信度","value"]]),"key"),this.setOutput(!0),this.setTooltip("对于模型解析,获取模型识别结果的目标坐标、标识好、置信度")}},_O={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_OneNET").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("AI-Onenet平台 连接WiFi")}},rO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_OneNET").appendField("获鉴权码"),this.appendValueInput("account").setAlign(Et.inputs.Align.RIGHT).appendField("账号").setCheck(String),this.appendValueInput("password").setAlign(Et.inputs.Align.RIGHT).appendField("密码").setCheck(String),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("AI-Onenet平台 需要注册平台才能使用账号获取用户鉴权码,鉴权码一般24小时有效")}},dO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_OneNET").appendField("调取API"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像"),this.appendDummyInput().appendField("识别").appendField(new Et.FieldDropdown([["人脸检测","FACE_RECO"],["人脸分析","FACE_ATTRIBUTE"],["人体检测","BODY_RECO"],["图像抄表","AMMETER_READ"],["内容测评","IDENTIFY_PORN"],["车牌信息","NUMBER_PLATE_RECOGNITION"],["宠物种类","CAT_DOG_DETECTION"],["火灾检测","FIRE_DETECTION"]]),"api"),this.appendValueInput("token").setAlign(Et.inputs.Align.RIGHT).appendField("鉴权码").setCheck(String),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("AI-Onenet平台 调用平台API,返回列表识别结果参数")}},IO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_Local").appendField("模型训练"),this.appendValueInput("calss").setAlign(Et.inputs.Align.RIGHT).appendField("物品"),this.appendValueInput("sample").setAlign(Et.inputs.Align.RIGHT).appendField("训练量").setCheck(Number),this.appendValueInput("save").setAlign(Et.inputs.Align.RIGHT).appendField("保存").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("AI-Local本地模型训练 需要识别的物品名称、每个物品训练数量、保存的名称")}},TO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_Local").appendField("模型加载"),this.appendValueInput("path").setAlign(Et.inputs.Align.RIGHT).appendField("路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("AI-Local 加载已经训练好的本地模型")}},hO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_Local").appendField("运行模型"),this.appendValueInput("calss").setAlign(Et.inputs.Align.RIGHT).appendField("物品"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("AI-Local 采集图像运行模型将返回识别的物品名、置信度")}},mO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_Face").appendField("初始化 加载"),this.appendValueInput("FD").setAlign(Et.inputs.Align.RIGHT).appendField("模型FD:").setCheck(String),this.appendValueInput("LD").setAlign(Et.inputs.Align.RIGHT).appendField("模型LD:").setCheck(String),this.appendValueInput("FE").setAlign(Et.inputs.Align.RIGHT).appendField("模型FE:").setCheck(String),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("人脸分辨,初始化")}},OO={init:function(){this.setColour(eO),this.appendDummyInput("").appendField("AI_Face").appendField("运行识别"),this.appendValueInput("names").setAlign(Et.inputs.Align.RIGHT).appendField("人名"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图象"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("人脸分辨,识别到人脸返回True,无人脸返回False")}},cO={init:function(){this.setColour(eO),this.appendDummyInput().appendField("AI_Face").appendField("识别解析"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["识别人名","info_name"],["置信度 %","info_score"],["脸部坐标","info_face"],["三官坐标","info_organs"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("人脸分辨,识别到人物名称,置信度,脸部坐标,三官(眼睛x2、鼻子、嘴巴*2)坐标")}},RO="#2CAAD2",MO={init:function(){this.setColour(RO),this.appendValueInput("SUB").setCheck("var").appendField("初始化"),this.appendValueInput("BCK",Number).appendField("BCK#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("WS",Number).appendField("WS#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("DAT",Number).appendField("DAT#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("初始化配置扬声器,用于语音播放")}},EO={init:function(){this.setColour(RO),this.appendValueInput("SUB").setCheck("var").appendField("初始化"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("初始化配置扬声器,用于语音播放")}},CO={init:function(){this.setColour(RO),this.appendDummyInput().appendField("Audio 音频播放"),this.appendValueInput("path").appendField("路径").setAlign(Et.inputs.Align.RIGHT).setCheck(String),this.appendValueInput("SUB").setCheck("var").setAlign(Et.inputs.Align.RIGHT).appendField("设备"),this.appendValueInput("volume").appendField("音量(%)").setAlign(Et.inputs.Align.RIGHT).setCheck(Number),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("音频播放")}},AO={init:function(){this.setColour(RO),this.appendDummyInput().appendField("Audio 音频录制"),this.appendValueInput("path").appendField("路径").setAlign(Et.inputs.Align.RIGHT).setCheck(String),this.appendValueInput("SUB").setCheck("var").setAlign(Et.inputs.Align.RIGHT).appendField("设备"),this.appendValueInput("time").appendField("时长(s)").setAlign(Et.inputs.Align.RIGHT).setCheck(Number),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("音频录制")}},gO={init:function(){this.setColour(RO),this.appendDummyInput().appendField("Video 视频播放"),this.appendValueInput("path").appendField("路径").setAlign(Et.inputs.Align.RIGHT).setCheck(String),this.appendValueInput("SUB").setCheck("var").setAlign(Et.inputs.Align.RIGHT).appendField("设备"),this.appendValueInput("volume").appendField("音量(%)").setAlign(Et.inputs.Align.RIGHT).setCheck(Number),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("视频播放")}},SO={init:function(){this.setColour(RO),this.appendDummyInput().appendField("Video 视频录制"),this.appendValueInput("path").appendField("路径").setAlign(Et.inputs.Align.RIGHT).setCheck(String),this.appendValueInput("SUB").setCheck("var").setAlign(Et.inputs.Align.RIGHT).appendField("设备"),this.appendValueInput("time").appendField("时长(s)").setAlign(Et.inputs.Align.RIGHT).setCheck(Number),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("视频录制")}},DO="#bc9705",LO={init:function(){this.setColour(DO),this.appendDummyInput("").appendField(new Et.FieldDropdown([["彩色图(YUV422)","sensor.YUV422"],["彩色图(RGB565)","sensor.RGB565"],["灰度图","sensor.GRAYSCALE"]]),"flag"),this.setOutput(!0),this.setTooltip()}},NO={init:function(){this.setColour(DO),this.appendDummyInput("").appendField(new Et.FieldDropdown([["320x240","sensor.QVGA"],["240x240","sensor.B240X240"],["128x128","sensor.B128X128"],["64x64","sensor.B64X64"]]),"flag"),this.setOutput(!0),this.setTooltip()}},fO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera").appendField("初始化"),this.appendValueInput("key1").setAlign(Et.inputs.Align.RIGHT).appendField("帧格式"),this.appendValueInput("key2").setAlign(Et.inputs.Align.RIGHT).appendField("帧大小"),this.appendValueInput("key3").setAlign(Et.inputs.Align.RIGHT).appendField("图捕捉"),this.appendValueInput("key4").setAlign(Et.inputs.Align.RIGHT).appendField("跳帧数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("初始化摄像头,会自动扫描并获取摄像头型号")}},FO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendDummyInput().appendField("初始化"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("初始化摄像头,会自动扫描并获取摄像头型号")}},vO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("key").appendField("帧格式"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("设置摄像头输出格式")}},PO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("key").appendField("帧大小"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("设置摄像头输出帧大小")}},VO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("key").appendField("图捕捉"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("开启图像捕捉功能")}},yO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("frame").appendField("跳帧数").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("摄像头跳过指定帧数")}},YO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendDummyInput().appendField("获取图像"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("控制摄像头捕捉图像")}},bO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("key").appendField("设为"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("启动/关闭摄像头")}},kO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("key").appendField("水平镜像"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("设置摄像头水平镜像")}},XO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("key").appendField("垂直镜像"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("设置摄像头垂直镜像")}},GO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendValueInput("key").appendField("彩条模式"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("将摄像头设置为彩条模式")}},wO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["分辨率宽度","width"],["分辨率高度","height"],["当前增益值","get_gain_db"],["帧缓冲图像","get_fb"],["类型型号ID","get_id"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("获取当前摄像头信息")}},UO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendDummyInput().appendField("设置").appendField(new Et.FieldDropdown([["对比度","set_contrast"],["亮度值","set_brightness"],["增益值","set_auto_gain"],["饱和度","set_saturation"]]),"key"),this.appendValueInput("num").appendField("值为").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("设置摄像头对比度、亮度、增益、饱和度")}},xO={init:function(){this.setColour(DO),this.appendDummyInput().appendField("Camera"),this.appendDummyInput().appendField("设置窗口"),this.appendValueInput("numa").appendField("宽为").setCheck(Number),this.appendValueInput("numb").appendField("高为").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("设置摄像头窗口大小")}},HO=140,BO={init:function(){this.setColour(HO),this.appendValueInput("PIN").appendField(Et.Msg.MIXLY_IR_RECEIVE),this.appendDummyInput().appendField("获取编码"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_I2C_SCAN)}},WO={init:function(){this.setColour(HO),this.appendValueInput("SUB").appendField("I2C "+Et.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("TX",Number).appendField("SCL#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("RX",Number).appendField("SDA#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendDummyInput().appendField("通道").appendField(new Et.FieldDropdown([["0","I2C0"],["1","I2C1"],["2","I2C2"]]),"mode"),this.appendValueInput("freq").setCheck(Number).appendField(Et.Msg.MIXLY_FREQUENCY).setAlign(Et.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_I2C_INIT)}},KO={init:function(){this.setColour(HO),this.appendValueInput("SUB").setCheck("var").appendField("I2S 初始化"),this.appendDummyInput().appendField("设备").appendField(new Et.FieldDropdown([["麦克风","mic"],["扬声器","spk"]]),"mode"),this.appendValueInput("BCK",Number).appendField("BCK#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("WS",Number).appendField("WS#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("DAT",Number).appendField("DAT#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("sample").appendField("采样率").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_I2C_INIT)}},qO={init:function(){this.setColour(HO),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(Et.Msg.MIXLY_ESP32_RNUMBER),this.appendValueInput("data").setCheck(Number).appendField(Et.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},QO={init:function(){this.setColour(HO),this.appendValueInput("VAR").appendField("I2C").setCheck("var"),this.appendValueInput("address").setCheck(Number).appendField(Et.Msg.MIXLY_ESP32_WNUMBER),this.appendValueInput("data").setCheck(Number).appendField(Et.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},jO={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_ESP32_I2C_SCAN1),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_I2C_SCAN2),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_I2C_SCAN)}},JO={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_ESP32_SPI_INIT),this.appendValueInput("freq").setCheck(Number).appendField(Et.Msg.MIXLY_SERIAL_BEGIN),this.appendValueInput("polarity").setCheck(Number).appendField("polarity"),this.appendValueInput("phase").setCheck(Number).appendField("phase"),this.appendValueInput("sck").setCheck(Number).appendField("SCK"),this.appendValueInput("mosi").setCheck(Number).appendField("MOSI"),this.appendValueInput("miso").setCheck(Number).appendField("MISO"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP)}},zO={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_SETTING+" SPI"),this.appendValueInput("data").setCheck(Number).appendField(Et.Msg.MIXLY_SERIAL_BEGIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_SET)}},ZO={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_ESP32_SET+"SPI"),this.appendValueInput("data").setCheck(Number).appendField(Et.Msg.MIXLY_ESP32_SPI_BUFFER),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_BUFFER_SET)}},$O={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(Et.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(Et.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+Et.Msg.LANG_MATH_BYTE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_READ)}},tc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(Number).appendField(Et.Msg.MIXLY_SERIAL_READ),this.appendDummyInput("").appendField(Et.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+Et.Msg.LANG_MATH_BYTE+","+Et.Msg.MIXLY_ESP32_SPI_OUTPUT),this.appendValueInput("val").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_READ_OUTPUT)}},ec={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(Et.Msg.MIXLY_SERIAL_READ+Et.Msg.MIXLY_ESP32_SPI_BUFFER),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_READINTO)}},ic={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck("var").appendField(Et.Msg.MIXLY_SERIAL_READ+Et.Msg.MIXLY_ESP32_SPI_BUFFER),this.appendValueInput("val").setCheck(Number).appendField(","+Et.Msg.MIXLY_ESP32_SPI_OUTPUT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT)}},nc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_WRITE)}},sc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("SPI"),this.appendValueInput("data").setCheck(String).appendField(Et.Msg.MIXLY_ESP32_WRITE),this.appendValueInput("val").setCheck("var").appendField(","+Et.Msg.MIXLY_ESP32_BUFFER_READ),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_SPI_WRITE_READINTO)}},oc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("I2C"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_READ),this.setOutput(!0,Number)}},pc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_ESP32_READ+"I2C"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_SUCCESS),this.setOutput(!0,Boolean),this.setTooltip(Et.Msg.MIXLY_ESP32_I2C_AVAILABLE)}},uc={init:function(){this.setColour(HO),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_I2C_SLAVE_ONRECEIVE).setCheck(Number),this.appendStatementInput("DO").appendField(Et.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ac={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendValueInput("BUS").setCheck(Number).appendField(Et.Msg.MIXLY_SETUP+" "+Et.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_OW_INIT)}},lc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_ONEWIRE_SCAN),this.setOutput(!0,"List"),this.setTooltip(Et.Msg.MIXLY_ESP32_OW_SCAN)}},_c={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_ONEWIRE_READ),this.setOutput(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_OW_READ)}},rc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField("OneWire"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_ESP32_WRITE).appendField(new Et.FieldDropdown([[Et.Msg.LANG_MATH_STRING,"write"],[Et.Msg.LANG_MATH_BYTE,"writebyte"]]),"op"),this.appendValueInput("byte").setCheck([Number,String]),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_OW_WRITE)}},dc={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_ESP32_ONEWIRE_SELECT),this.appendValueInput("byte").setCheck(String).appendField("ROM"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_OW_SELECT)}},Ic={init:function(){this.setColour(HO),this.appendValueInput("VAR").setCheck("var").appendField(Et.Msg.MIXLY_ESP32_ONEWIRE_RESET),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Et.Msg.MIXLY_ESP32_OW_RESET)}},Tc=WO,hc=qO,mc=QO,Oc=jO,cc=JO,Rc=zO,Mc=ZO,Ec=$O,Cc=tc,Ac=ec,gc=ic,Sc=nc,Dc=sc,Lc=oc,Nc=pc,fc=180,Fc={init:function(){this.setColour(fc),this.appendDummyInput("").appendField(new Et.FieldDropdown([["0°","0"],["90°","1"],["180°","2"],["270°","3"]]),"flag"),this.setOutput(!0),this.setTooltip()}},vc={init:function(){this.setColour(fc),this.appendDummyInput("").appendField(new Et.FieldDropdown([["黑色","lcd.BLACK"],["深蓝色","lcd.NAVY"],["蓝色","lcd.BLUE"],["深绿色","lcd.DARKGREEN"],["深青色","lcd.DARKCYAN"],["绿色","lcd.GREEN"],["青色","lcd.CYAN"],["褐红色","lcd.MAROON"],["紫色","lcd.PURPLE"],["橄榄色","lcd.OLIVE"],["深灰色","lcd.DARKGREY"],["绿黄色","lcd.GREENYELLOW"],["浅灰色","lcd.LIGHTGREY"],["红色","lcd.RED"],["洋红色","lcd.MAGENTA"],["粉红色","lcd.PINK"],["橙色","lcd.ORANGE"],["黄色","lcd.YELLOW"],["白色","lcd.WHITE"]]),"flag"),this.setOutput(!0),this.setTooltip()}},Pc={init:function(){this.setColour(fc),this.appendDummyInput("").appendField(new Et.FieldDropdown([["开启","1"],["关闭","0"]]),"flag"),this.setOutput(!0),this.setTooltip()}},Vc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD 初始化"),this.appendValueInput("freq").setAlign(Et.inputs.Align.RIGHT).appendField("通信频率").setCheck(Number),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("背景颜色").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化LCD屏幕显示")}},yc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD 获取 "),this.appendDummyInput().appendField(new Et.FieldDropdown([["宽度","width"],["高度","height"]]),"key"),this.appendDummyInput().appendField("分辨率"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("获取LCD的宽度/高度(水平分辨率)")}},Yc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD"),this.appendValueInput("key").appendField("系统颜色"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("获取LCD的宽度/高度(水平分辨率)")}},bc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD 显示图像"),this.appendValueInput("img").appendField(""),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("在液晶屏上显示一张image(GRAYSCALE或RGB565")}},kc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD 清屏颜色"),this.appendValueInput("color").appendField("").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("将液晶屏清空为指定的颜色")}},Xc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD 屏幕旋转"),this.appendValueInput("key").appendField(""),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("设置LCD屏幕方向")}},Gc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD 镜像显示"),this.appendValueInput("key").appendField(""),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("设置LCD是否镜面显示")}},wc={init:function(){this.setColour(fc),this.appendDummyInput().appendField("LCD 绘制文本"),this.appendValueInput("x").setAlign(Et.inputs.Align.RIGHT).appendField("坐标X").setCheck(Number),this.appendValueInput("y").setAlign(Et.inputs.Align.RIGHT).appendField("坐标Y").setCheck(Number),this.appendValueInput("text").setAlign(Et.inputs.Align.RIGHT).appendField("文本内容").setCheck(String),this.appendValueInput("color_T").setAlign(Et.inputs.Align.RIGHT).appendField("文本颜色").setCheck(Number),this.appendValueInput("color_S").setAlign(Et.inputs.Align.RIGHT).appendField("背景颜色").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("在液晶屏上显示文本字符(不支持中文)")}},Uc={init:function(){this.setColour(40),this.appendDummyInput().appendField("Touch 初始化"),this.appendValueInput("I2C").appendField("通信").setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化触摸屏")}},xc={init:function(){this.setColour(40),this.appendDummyInput().appendField("Touch 校准"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("校准屏幕,使屏幕显示和触摸屏像素能够对应")}},Hc={init:function(){this.setColour(40),this.appendDummyInput().appendField("Touch 获取 "),this.appendDummyInput().appendField(new Et.FieldDropdown([["状态","[0]"],["坐标x","[1]"],["坐标y","[2]"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("读取当前屏幕的状态以及按下的点的坐标值")}},Bc={init:function(){this.setColour(40),this.appendDummyInput().appendField("Touch 状态"),this.appendDummyInput().appendField(new Et.FieldDropdown([["空闲","ts.STATUS_IDLE"],["不按","ts.STATUS_RELEASE"],["按下","ts.STATUS_PRESS"],["移动","ts.STATUS_MOVE"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("读取当前屏幕的状态以及按下的点的坐标值")}},Wc="#777777",Kc={init:function(){this.setColour(Wc),this.appendDummyInput("").appendField("from ").appendField(new Et.FieldTextInput("mixno"),"path").appendField(" import ").appendField(new Et.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qc={init:function(){this.setColour(Wc),this.appendDummyInput("").appendField("import ").appendField(new Et.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qc={init:function(){this.setColour(Wc),this.appendDummyInput("").appendField(new Et.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Et.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;ee?t[e]:"ni-hao"),"KEY"+e).appendField("”:")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},lR={init:function(){this.setColour(pR),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendDummyInput().appendField("启动识别 返回结果"),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip("语音识别,获取识别结果")}},_R={init:function(){this.setColour(pR),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendDummyInput().appendField("注销识别 内存释放"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("语音识别,注销语音识别,释放内存")}},rR="#90A244",dR={init:function(){this.setColour(rR),this.appendDummyInput("").appendField(new Et.FieldDropdown([["否","0"],["是","1"]]),"flag"),this.setOutput(!0),this.setTooltip()}},IR={init:function(){this.setColour(rR),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("path").appendField("打开路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("打开一个新的图像对象")}},TR={init:function(){this.setColour(rR),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField("打开空图"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("打开一个空的图像对象")}},hR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像信息"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["宽度","width"],["高度","height"],["格式","format"],["大小","size"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("获取图像的宽度、高度、格式、大小")}},mR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像保存"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("path").setAlign(Et.inputs.Align.RIGHT).appendField("路径").setCheck(String),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("图像的副本保存到文件系统")}},OR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像截取"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("复制一个图像图像的副本")}},cR={init:function(){this.setColour(rR),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("对图像进行适当压缩")}},RR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像压缩"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("quality").setAlign(Et.inputs.Align.RIGHT).appendField("压缩率").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("对图像进行适当压缩")}},MR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像清除"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("将图像中的所有像素设置为零")}},ER={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像转换"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendDummyInput().appendField("转换为").appendField(new Et.FieldDropdown([["灰度图","to_grayscale"],["彩色图","to_rgb565"],["彩虹图","to_rainbow"],["AI格式","pix_to_ai"],["字节块","to_bytes"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("将图像转换为灰度图、彩色图、彩虹图像")}},CR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("修改点颜色"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("设置图像某点像素值")}},AR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("获取点颜色"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xy"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("获取图像某点像素值")}},gR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("字库加载"),this.appendValueInput("path").setAlign(Et.inputs.Align.RIGHT).appendField("路径").setCheck(String),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("从SD中加载需要显示文字的字库")}},SR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("字库释放"),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("释放字库所占的内存")}},DR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制文本(中)"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Et.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Et.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Et.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Et.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.appendValueInput("x_spacing").setAlign(Et.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个文本")}},LR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制文本"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Et.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Et.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Et.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Et.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.appendValueInput("x_spacing").setAlign(Et.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个中文文本")}},NR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制文本(英)"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Et.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Et.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Et.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Et.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个字符文本")}},fR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制直线"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xyxy"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Et.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一条从(x0,y0)到(x1,y1)的线")}},FR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制箭头"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xyxy"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Et.inputs.Align.RIGHT).appendField("大小").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个箭头")}},vR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制十字"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("size").setAlign(Et.inputs.Align.RIGHT).appendField("延伸").setCheck(Number),this.appendValueInput("thi").setAlign(Et.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个十字")}},PR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制圆形"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xyr"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Et.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Et.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个圆形")}},VR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制矩形"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xywh"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Et.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Et.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个矩形")}},yR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制特征点"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("keypoints").setAlign(Et.inputs.Align.RIGHT).appendField("对象"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("size").setAlign(Et.inputs.Align.RIGHT).appendField("大小").setCheck(Number),this.appendValueInput("thi").setAlign(Et.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Et.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setTooltip("绘制一个特征点对象的各个点")}},YR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("绘制图像"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("x_scale").setAlign(Et.inputs.Align.RIGHT).appendField("x缩放").setCheck(Number),this.appendValueInput("y_scale").setAlign(Et.inputs.Align.RIGHT).appendField("y缩放").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("绘制一个image图像")}},bR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("直线识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("theta_margin").setAlign(Et.inputs.Align.RIGHT).appendField("合并角度").setCheck(Number),this.appendValueInput("rho_margin").setAlign(Et.inputs.Align.RIGHT).appendField("合并斜率").setCheck(Number),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别直线,返回image.line对象列表")}},kR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("线段识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("distance").setAlign(Et.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.appendValueInput("difference").setAlign(Et.inputs.Align.RIGHT).appendField("合并角度").setCheck(Number),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别线段,返回image.line对象列表")}},XR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("圆形识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("r_min").setAlign(Et.inputs.Align.RIGHT).appendField("最小r").setCheck(Number),this.appendValueInput("r_max").setAlign(Et.inputs.Align.RIGHT).appendField("最大r").setCheck(Number),this.appendValueInput("r_step").setAlign(Et.inputs.Align.RIGHT).appendField("步长r").setCheck(Number),this.appendValueInput("x_margin").setAlign(Et.inputs.Align.RIGHT).appendField("合并x值").setCheck(Number),this.appendValueInput("y_margin").setAlign(Et.inputs.Align.RIGHT).appendField("合并y值").setCheck(Number),this.appendValueInput("r_margin").setAlign(Et.inputs.Align.RIGHT).appendField("合并r值").setCheck(Number),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[circle]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别圆形,返回image.cirle对象列表")}},GR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("矩形识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[rect]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用四元检测识别矩形,返回image.rect对象列表")}},wR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("线性回归"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("invert").setAlign(Et.inputs.Align.RIGHT).appendField("阈值反转"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("robust").setAlign(Et.inputs.Align.RIGHT).appendField("泰尔指数").setCheck(Number),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("计算线性回归,返回image.line对象列表")}},UR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("直线解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["坐标-xywh","line"],["x1分量","x1"],["y1分量","y1"],["x2分量","x2"],["y2分量","y2"],["长度","length"],["角度","theta"],["斜率","rho"],["模","magnitude"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.line列表,获取直线信息")}},xR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("圆形解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["坐标-xyr","circle"],["x分量","x"],["y分量","y"],["r分量","r"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.circle列表,获取圆形信息")}},HR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("矩形解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.rect列表,获取矩形信息")}},BR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("直方图均衡"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("key").setAlign(Et.inputs.Align.RIGHT).appendField("自适应"),this.appendValueInput("limit").setAlign(Et.inputs.Align.RIGHT).appendField("对比度").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单直方图均衡化")}},WR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("模糊滤波"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Et.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("key").setAlign(Et.inputs.Align.RIGHT).appendField("自适应"),this.appendValueInput("offset").setAlign(Et.inputs.Align.RIGHT).appendField("补偿").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单模糊滤波")}},KR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("卡通化滤波"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("seed").setAlign(Et.inputs.Align.RIGHT).appendField("原始差异").setCheck(Number),this.appendValueInput("float").setAlign(Et.inputs.Align.RIGHT).appendField("相邻差异").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单卡通滤波器")}},qR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像腐蚀"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Et.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.setOutput(!0),this.setTooltip("图像腐蚀,从分割区域的边缘删除像素(白色目标区域)")}},QR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像膨胀"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Et.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.setOutput(!0),this.setTooltip("图像膨胀,将像素添加到分割区域的边缘中(白色目标区域)")}},jR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像填充"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("开始坐标"),this.appendValueInput("color").setAlign(Et.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("seed").setAlign(Et.inputs.Align.RIGHT).appendField("原始差异").setCheck(Number),this.appendValueInput("float").setAlign(Et.inputs.Align.RIGHT).appendField("相邻差异").setCheck(Number),this.appendValueInput("invert").setAlign(Et.inputs.Align.RIGHT).appendField("反转"),this.appendValueInput("clear").setAlign(Et.inputs.Align.RIGHT).appendField("清除"),this.setOutput(!0),this.setTooltip("像洪水一样填充图像中低矮凹陷的地方(洪水填充)")}},JR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像投影"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("key").setAlign(Et.inputs.Align.RIGHT).appendField("垂直投影"),this.setOutput(!0),this.setTooltip("图像从笛卡尔坐标到线性极坐标重新投影")}},zR={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像反转"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("翻转图像中的所有像素值")}},ZR={init:function(){this.setColour(rR),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("翻转图像中的所有像素值")}},$R={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像二值化"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("invert").setAlign(Et.inputs.Align.RIGHT).appendField("阈值反转"),this.appendValueInput("zero").setAlign(Et.inputs.Align.RIGHT).appendField("阈值像素为零"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("根据像素是否在阈值列表 thresholds 中的阈值内,将图像中的所有像素设置为黑色或白色。")}},tM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("图像边缘检测"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Et.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("kernel").setAlign(Et.inputs.Align.RIGHT).appendField("内核"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("通过过滤器内核对图像进行卷积。")}},eM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("条形码识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[barcode]"),this.setOutput(!0),this.setInputsInline(!1),this.setOutput(!0),this.setTooltip("使用条形码识别,返回image.barcode对象列表")}},iM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("二维码识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[qrcode]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用二维码识别,返回image.line对象列表")}},nM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("AprilTag识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[apriltag]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用image.TAG36H11识别,返回image.apriltag对象列表")}},sM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("二维码解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["内容","payload"],["版本","version"],["掩码","mask"],["类型","data_type"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.qrcode列表,获取二维码信息")}},oM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("条形码解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["内容","payload"],["类型","type"],["角度","rotation"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},pM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("AprilTag解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.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信息")}},uM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("色块追踪"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Et.inputs.Align.RIGHT).appendField("阈值LAB"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("area").setAlign(Et.inputs.Align.RIGHT).appendField("滤掉区域").setCheck(Number),this.appendValueInput("pixel").setAlign(Et.inputs.Align.RIGHT).appendField("滤掉素数").setCheck(Number),this.appendValueInput("margin").setAlign(Et.inputs.Align.RIGHT).appendField("合并").setCheck(Number),this.appendValueInput("key").setAlign(Et.inputs.Align.RIGHT).appendField("重叠"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[blob]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用色块追踪,返回image.blob对象列表")}},aM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("颜色识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[histogram]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用直方图识别颜色,返回image.histogram对象列表")}},lM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("追踪解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.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列表,获取追踪色块信息")}},_M={init:function(){this.setColour(rR),this.appendDummyInput().appendField("色阈浮点"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["灰度图浮点列表","bins"],["LAB的L浮点列表","l_bins"],["LAB的A浮点列表","a_bins"],["LAB的B浮点列表","b_bins"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},rM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("颜色解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendValueInput("percentile").appendField("CDF").setCheck(Number),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["灰度图值","value"],["LAB的L值","l_value"],["LAB的A值","a_value"],["LAB的B值","b_value"]]),"key"),this.setOutput(!0),this.setTooltip("通过histogram列表,获取识别颜色信息")}},dM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("色阈解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.FieldDropdown([["灰度图值","value"],["LAB的L值","l_value"],["LAB的A值","a_value"],["LAB的B值","b_value"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},IM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("RGB888值"),this.appendValueInput("LIST").appendField("由LAB"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("LAB转RGB888")}},TM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("LAB值"),this.appendValueInput("LIST").appendField("由RGB888"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("RGB888转LAB")}},hM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("灰度值"),this.appendValueInput("LIST").appendField("由RGB888"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("RGB888转灰度图")}},mM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("RGB888"),this.appendValueInput("g_value").appendField("由灰度值").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("灰度图转RGB888")}},OM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("定向梯度图"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("size").setAlign(Et.inputs.Align.RIGHT).appendField("线长").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("用HOG(定向梯度直方图)线替换ROI中的像素,仅支持灰度图像")}},cM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("特征识别"),this.appendValueInput("VAR").setAlign(Et.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Et.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("max_keypoints").setAlign(Et.inputs.Align.RIGHT).appendField("关键点数").setCheck(Number),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("角点数").setCheck(Number),this.appendValueInput("scale_factor").setAlign(Et.inputs.Align.RIGHT).appendField("比例因子").setCheck(Number),this.appendValueInput("normalized").setAlign(Et.inputs.Align.RIGHT).appendField("多比例"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[keypoints]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用特征识别,返回image.keypoints对象列表")}},RM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("特征比较"),this.appendValueInput("VAR1").setAlign(Et.inputs.Align.RIGHT).appendField("对象1").setCheck("var"),this.appendValueInput("VAR2").setAlign(Et.inputs.Align.RIGHT).appendField("对象2").setCheck("var"),this.appendValueInput("threshold").setAlign(Et.inputs.Align.RIGHT).appendField("相似度").setCheck(Number),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("返回[kptmatch]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用特征识别,返回image.keypoints对象列表")}},MM={init:function(){this.setColour(rR),this.appendDummyInput().appendField("特征信息"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Et.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列表,获取追踪特征信息")}},EM=20,CM={init:function(){this.setColour(EM),this.appendDummyInput("").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_HIGH,"HIGH"],[Et.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Et.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},AM={init:function(){this.setColour(EM),this.appendDummyInput().appendField("初始化 "),this.appendDummyInput("").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_Digital_PINMODEOUT,"GPIO.OUT"],[Et.Msg.MIXLY_Digital_PINMODEIN,"GPIO.IN"],[Et.Msg.MIXLY_PINMODEPULLUP,"GPIO.IN, board.GPIO.PULL_UP"],[Et.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(Et.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)}},gM={init:function(){this.setColour(EM),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Et.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},SM={init:function(){this.setColour(EM),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Et.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField("值"),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Et.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},DM={init:function(){this.setColour(EM),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输出设置,需要调用定时器")}},LM={init:function(){this.setColour(EM),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%,可以为小数")}},NM={init:function(){this.setColour(EM),this.appendDummyInput().appendField("硬件中断"),this.appendValueInput("PIN",Number).appendField("管键").setCheck(Number),this.appendDummyInput("").appendField(Et.Msg.MIXLY_MODE).appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_RISING,"GPIO.IRQ_RISING"],[Et.Msg.MIXLY_FALLING,"GPIO.IRQ_FALLING"],[Et.Msg.MIXLY_CHANGE,"GPIO.IRQ_BOTH"]]),"mode"),this.appendValueInput("DO").appendField(Et.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},fM={init:function(){this.setColour(EM),this.appendDummyInput().appendField("取消中断"),this.appendValueInput("PIN",Number).appendField("管键").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("取消中断")}},FM="#637AAC",vM={init:function(){this.setColour(FM),this.appendDummyInput().appendField("OneNET 连接WiFi"),this.appendValueInput("WIFINAME").setCheck(String).appendField(Et.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Et.Msg.HTML_PASSWORD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},PM={init:function(){this.setColour(FM),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"+Et.Msg.TUPLE_JOIN),this.appendValueInput("CLIENT").setAlign(Et.inputs.Align.RIGHT).setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_CLIENT),this.appendValueInput("SERVER").setAlign(Et.inputs.Align.RIGHT).setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_SERVER),this.appendValueInput("USERNAME").setAlign(Et.inputs.Align.RIGHT).setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_USERNAME),this.appendValueInput("PASSWORD").setAlign(Et.inputs.Align.RIGHT).setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_PASSWORD),this.appendValueInput("TOPIC").setAlign(Et.inputs.Align.RIGHT).setCheck(String).appendField(Et.Msg.MIXLY_ESP32_ONENET_TOPIC),this.appendValueInput("SUB").setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP)}},VM={init:function(){this.setColour(FM),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP)}},yM={init:function(){this.setColour(FM),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP)}},YM={init:function(){this.setColour(FM),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendValueInput("DICT").appendField(Et.Msg.MIXLY_ESP32_PUBLISH_ONENET),this.appendDummyInput().appendField(Et.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA).appendField(new Et.FieldCheckbox("TRUE"),"is_print"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP)}},bM={init:function(){this.setColour(FM),this.appendValueInput("VAR").setCheck("var").appendField("OneNET").setAlign(Et.inputs.Align.RIGHT),this.appendDummyInput().appendField(new Et.FieldLabel(Et.Msg.MIXLY_ESP32_PUBLISH_ONENET),"TIP").setAlign(Et.inputs.Align.RIGHT),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Et.icons.MutatorIcon(["iot_publish_item"],this)),this.setTooltip(Et.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){Et.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},kM={init:function(){this.setColour(FM),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},XM={init:function(){this.setColour(FM),this.appendDummyInput().appendField(Et.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},GM={init:function(){this.setColour(FM),this.appendDummyInput().appendField(Et.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},wM=vM,UM=PM,xM=VM,HM=yM,BM=bM,WM=230;Et.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},Et.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 KM={init:function(){this.setColour(WM),this.appendDummyInput().appendField(new Et.FieldTextInput("0",Et.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Et.Msg.MATH_NUMBER_TOOLTIP)}},qM={init:function(){this.setColour(WM);this.appendDummyInput("").appendField(Et.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Et.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Et.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Et.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},QM={init:function(){this.setColour(WM),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Et.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:Et.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Et.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Et.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},jM={init:function(){this.setColour(WM),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Et.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:Et.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Et.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Et.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Et.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Et.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},JM={init:function(){this.setColour(WM),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Et.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},zM={init:function(){this.setColour(WM),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Et.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:Et.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Et.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Et.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Et.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Et.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Et.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Et.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},ZM={init:function(){var t=[[Et.Msg.LANG_MATH_TO_ROUND,"round"],[Et.Msg.LANG_MATH_TO_CEIL,"ceil"],[Et.Msg.LANG_MATH_TO_FLOOR,"floor"],[Et.Msg.MATH_ABS,"fabs"],[Et.Msg.MATH_SQRT,"sqrt"]];this.setColour(WM),this.appendValueInput("A").setCheck(Number).appendField(new Et.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Et.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Et.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Et.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Et.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Et.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Et.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},$M={init:function(){var t=[[Et.Msg.MIXLY_MAX,"max"],[Et.Msg.MIXLY_MIN,"min"]];this.setColour(WM),this.appendValueInput("A").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(new Et.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Et.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Et.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Et.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},tE={init:function(){var t=[[Et.Msg.MIXLY_MAX,"max"],[Et.Msg.MIXLY_MIN,"min"]];this.setColour(WM),this.appendValueInput("LIST").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(new Et.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Et.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Et.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},eE={init:function(){var t=[[Et.Msg.MATH_TWO,"two"],[Et.Msg.MATH_EIGHT,"eight"],[Et.Msg.MATH_TEN,"ten"],[Et.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(WM),this.appendDummyInput("").appendField(Et.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Et.FieldDropdown(t),"OP").appendField(Et.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Et.Msg.MATH_ZHW).appendField(new Et.FieldDropdown(t),"OP2").appendField(Et.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:Et.Msg.MATH_Before_two,eight:Et.Msg.MATH_Before_eight,ten:Et.Msg.MATH_Before_ten,sixteen:Et.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Et.Msg.MATH_Behind_two,eight:Et.Msg.MATH_Behind_eight,ten:Et.Msg.MATH_Behind_ten,sixteen:Et.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},iE={init:function(){var t=[[Et.Msg.LANG_MATH_INT,"int"],[Et.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(WM),this.setOutput(!0,Number),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Et.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Et.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Et.inputs.Align.RIGHT).appendField(Et.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Et.Msg.LANG_MATH_INT,float:Et.Msg.LANG_MATH_FLOAT_RANDOM};return Et.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},nE={init:function(){this.setColour(WM),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Et.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Et.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Et.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Et.Msg.MATH_CONSTRAIN_TOOLTIP)}},sE={init:function(){this.setColour(WM),this.appendValueInput("NUM",Number).appendField(Et.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Et.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Et.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_MATH_MAP)}},oE={init:function(){this.setColour(WM),this.appendDummyInput().appendField(new Et.FieldTextInput("0",Et.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Et.Msg.MATH_NUMBER_TOOLTIP)}},pE={init:function(){this.setColour(WM),this.appendValueInput("NUM").setCheck(Number).appendField(Et.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},uE=sE,aE="#2E9883",lE={init:function(){this.setColour(aE),this.appendDummyInput().appendField("NES 初始化"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("PS2手柄"),this.appendValueInput("miso_pin",Number).setAlign(Et.inputs.Align.RIGHT).appendField("DAT#").setCheck(Number),this.appendValueInput("mosi_pin",Number).setAlign(Et.inputs.Align.RIGHT).appendField("CMD#").setCheck(Number),this.appendValueInput("cs_pin",Number).setAlign(Et.inputs.Align.RIGHT).appendField("SEL#").setCheck(Number),this.appendValueInput("clk_pin",Number).setAlign(Et.inputs.Align.RIGHT).appendField("CLK#").setCheck(Number),this.appendValueInput("vol").setAlign(Et.inputs.Align.RIGHT).appendField("音量").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化NES,使用PS2手柄控制")}},_E={init:function(){this.setColour(aE),this.appendDummyInput().appendField("NES 初始化"),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("UART键盘"),this.appendValueInput("vol").setAlign(Et.inputs.Align.RIGHT).appendField("音量").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化NES,使用串口键盘控制")}},rE={init:function(){this.setColour(aE),this.appendDummyInput().appendField("NES 运行游戏"),this.appendValueInput("path").appendField("路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("运行NES游戏ROM")}},dE="#5B6DA5",IE={init:function(){this.setColour(dE),this.appendDummyInput().appendField("ESP-AT 初始化"),this.appendValueInput("RX",Number).appendField("RX#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("TX#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("使用串口连接ESP-AT设备,并初始化配置")}},TE={init:function(){this.setColour(dE),this.appendDummyInput().appendField("WiFi扫描"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("扫描附近可用的WiFi信息-返回多信息列表")}},hE={init:function(){this.setColour(dE),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上网")}},mE={init:function(){this.setColour(dE),this.appendDummyInput().appendField("WiFi").appendField(new Et.FieldDropdown([["连接信息","1"],["连接状态","2"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("查看wifi连接信息或者连接状态")}},OE={init:function(){this.setColour(dE),this.appendDummyInput().appendField("WiFi断开连接"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("断开wifi连接")}},cE={init:function(){this.setColour(dE),this.appendDummyInput("").setAlign(Et.inputs.Align.RIGHT).appendField("打开热点"),this.appendValueInput("account").setAlign(Et.inputs.Align.RIGHT).appendField("名称").setCheck(String),this.appendValueInput("password").setAlign(Et.inputs.Align.RIGHT).appendField("密码").setCheck(String),this.appendValueInput("chl").setAlign(Et.inputs.Align.RIGHT).appendField("通道").setCheck(Number),this.appendDummyInput().setAlign(Et.inputs.Align.RIGHT).appendField("加密").appendField(new Et.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热点并配置")}},RE={init:function(){this.setColour(dE),this.appendDummyInput().appendField("关闭热点"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("关闭热点")}},ME={init:function(){this.setColour(dE),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("套接字 初始化"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("套接字初始化")}},EE={init:function(){this.setColour(dE),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("获取地址"),this.appendValueInput("addr").setAlign(Et.inputs.Align.RIGHT).appendField("域名").setCheck(String),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("套接字根据域名解析地址IP信息")}},CE={init:function(){this.setColour(dE),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地址连接")}},AE={init:function(){this.setColour(dE),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("超时时间"),this.appendValueInput("time").setAlign(Et.inputs.Align.RIGHT).appendField("").setCheck(Number),this.appendDummyInput().appendField("s"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("设置阻塞套接字超时时间")}},gE={init:function(){this.setColour(dE),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendValueInput("content").appendField("发送数据"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("套接发送数据")}},SE={init:function(){this.setColour(dE),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("接收数据"),this.appendValueInput("size").appendField("字节").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("套接接收数据,返回接收到的数据对象")}},DE={init:function(){this.setColour(dE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},LE=230,NE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.digital),"PIN"),this.setOutput(!0)}},fE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},FE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.analog),"PIN"),this.setOutput(!0)}},vE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},PE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.dac),"PIN"),this.setOutput(!0)}},VE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},yE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},YE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.pwm),"PIN"),this.setOutput(!0)}},bE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},kE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},XE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.touch),"PIN"),this.setOutput(!0)}},GE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},wE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},UE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.imglist),"PIN"),this.setOutput(!0)}},xE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.playlist),"PIN"),this.setOutput(!0)}},HE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},BE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},WE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},KE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},qE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},QE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},jE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},JE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.one_more),"PIN"),this.setOutput(!0)}},zE={init:function(){this.setColour(LE),this.appendDummyInput("").appendField(new Et.FieldDropdown(Ct.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},ZE=40,$E={init:function(){this.setColour(ZE),this.appendDummyInput("").appendField(new Et.FieldDropdown([["A","17"],["B","16"]]),"KEY"),this.setOutput(!0),this.setTooltip()}},tC={init:function(){this.setColour(ZE),this.appendDummyInput().appendField("初始化"),this.appendValueInput("key").appendField("按键"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化按键")}},eC={init:function(){this.setColour(ZE),this.appendValueInput("key").appendField("按键"),this.appendDummyInput().appendField("被按下?"),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip("获取按键值")}},iC={init:function(){this.setColour(ZE),this.appendDummyInput().appendField("DHT11"),this.appendValueInput("PIN",Number).appendField(Et.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField("获取").appendField(new Et.FieldDropdown([["温度-℃","0"],["湿度-%","1"],["温湿度","2"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip("dht11,获取温湿度")}},nC={init:function(){this.setColour(ZE),this.appendDummyInput("").appendField(Et.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(Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO)}},sC={init:function(){this.setColour(ZE),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Et.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Et.Msg.MIXLY_MICROBIT_Direction,s=Et.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Et.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},oC={init:function(){this.setColour(ZE),this.appendValueInput("I2CSUB").appendField(Et.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Et.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Et.Msg.MIXLY_SETUP+Et.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Et.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 Et.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{MPU9250:"MPU9250",SHT20:"SHT20",BMP280:"BMP280",ADXL345:"ADXL345"}[e]}))}},pC={init:function(){this.setColour(ZE),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Et.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()":Et.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Et.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},uC={init:function(){this.setColour(ZE),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Et.FieldDropdown([[Et.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Et.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()":Et.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Et.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},aC={init:function(){this.setColour(ZE),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_JS_GET+Et.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Et.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=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Et.Msg.MIXLY_MICROBIT_Direction,s=Et.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Et.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},lC={init:function(){this.setColour(ZE),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Et.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Et.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=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Et.Msg.MIXLY_MICROBIT_Direction,s=Et.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Et.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},_C={init:function(){this.setColour(ZE),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_GETTEMPERATUE)}},rC={init:function(){this.setColour(ZE),this.appendValueInput("SUB").appendField("ADXL345").setCheck("var"),this.appendDummyInput().appendField(Et.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Et.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Et.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Et.Msg.MIXLY_MICROBIT_Direction,s=Et.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Et.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},dC=65,IC={init:function(){this.setColour(dC),this.appendValueInput("CONTENT",String).appendField("Serial").appendField(new Et.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Et.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.TEXT_PRINT_TOOLTIP)}},TC={init:function(){this.setColour(dC),this.appendValueInput("CONTENT",String).appendField("Serial").appendField(new Et.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Et.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.TEXT_PRINT_Huanhang_TOOLTIP+Et.Msg.TEXT_PRINT_TOOLTIP)}},hC={init:function(){this.setColour(dC),this.appendDummyInput().appendField("Serial").appendField(new Et.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Et.Msg.MIXLY_SERIAL_PRINTLN),this.appendValueInput("CONTENT",Number).appendField(new Et.FieldDropdown([[Et.Msg.MATH_BIN,"bin"],[Et.Msg.MATH_OCT,"oct"],[Et.Msg.MATH_DEC,"int"],[Et.Msg.MATH_HEX,"hex"]]),"STAT").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setFieldValue("hex","STAT"),this.setTooltip(Et.Msg.TEXT_PRINT_HEX_TOOLTIP)}},mC={init:function(){this.setColour(dC),this.appendValueInput("char_marker").setCheck(String).appendField(Et.Msg.MIXLY_MICROBIT_JS_SERIAL_WHEN_CONTAIN_DATA),this.appendStatementInput("DO").appendField(Et.Msg.MIXLY_DO)}},OC={init:function(){this.setColour(dC),this.appendDummyInput().appendField("Serial").appendField(new Et.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Et.Msg.MIXLY_SERIAL_READSTR),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERIAL_READ_STR)}},cC={init:function(){this.setColour(dC),this.appendDummyInput().appendField("Serial").appendField(new Et.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Et.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Boolean),this.setTooltip(Et.Msg.MIXLY_SERIAL_AVAILABLE1)}},RC={init:function(){this.setColour(dC),this.appendDummyInput().appendField("Serial").appendField(new Et.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Et.Msg.MIXLY_ESP32_READ_LINE),this.setOutput(!0,String),this.setTooltip(Et.Msg.MIXLY_MICROBIT_JS_SERIAL_READ_LINE1)}},MC={init:function(){this.setColour(dC),this.appendDummyInput().appendField("Serial "+Et.Msg.MIXLY_SERIAL_READSTR_UNTIL).appendField(new Et.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)}},EC={init:function(){this.setColour(dC),this.appendValueInput("RX",Number).appendField(Et.Msg.MIXLY_SETUP).appendField(new Et.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField("RX#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("TX#").setCheck(Number).setAlign(Et.inputs.Align.RIGHT),this.appendDummyInput().appendField(Et.Msg.MIXLY_SERIAL_BEGIN).appendField(new Et.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(Et.Msg.MIXLY_SERIAL_softserial)}},CC={init:function(){this.setColour(dC),this.appendValueInput("VAR").appendField(Et.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(Et.Msg.INOUT_input_TOOLTIP)}},AC={init:function(){this.setColour(dC),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.BLOCKPY_PRINT_TOOLTIP)}},gC={init:function(){this.setColour(dC),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Et.Msg.TEXT_PRINT_TOOLTIP)}},SC={init:function(){this.setColour(dC),this.appendValueInput("VAR").appendField(Et.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(Et.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Et.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},DC={init:function(){this.setColour(dC),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Et.icons.MutatorIcon(["system_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Et.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"},lN=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Ct.Profile.default.serial)+")\n"},_N=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ct.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ct.Profile.default.serial)+")\n"},rN=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Ct.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Ct.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},dN=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},IN=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},TN=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},hN=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},mN=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},ON=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},cN=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},RN=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]}},MN=function(){return"while True:\n pass\n"},EN=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},CN=function(t,e){e.definitions_["import machine"]="import machine";return"machine.reset()\n"},AN=function(t,e){return e.definitions_["import gc"]="import gc",this.getFieldValue("gc")+"\n"},gN=function(t,e){return e.definitions_.import_os="import os","os.uname()"},SN=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"}},DN=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"},LN=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]},NN=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"},fN=NN,FN=DN,vN=LN,PN=SN;const VN=function(t,e){return["["+this.getFieldValue("TEXT")+"]",e.ORDER_ATOMIC]},yN=function(t,e){return["("+this.getFieldValue("TEXT")+")",e.ORDER_ATOMIC]},YN=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]},bN=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(Et.Variables,gt),Object.assign(Et.Procedures,wl),Et.Python=Ul,Et.generator=Ul,Ct.Profile.default={},Object.assign(Ct.Profile,Um),Object.assign(Ct.Profile.default,Um.k210),Object.assign(Et.Blocks,e,i,n,s,o,p,u,a,l,_,r,d,I,F,f,N,L,v,k,X,G,w,U,x,H,B,W,K,q,Q,j,J,z,Z,$,tt,et),Object.assign(Et.Python.forBlock,T,h,m,O,c,R,M,E,C,A,g,S,D,Y,y,V,P,b,it,nt,st,ot,pt,ut,at,lt,_t,rt,dt,It,Tt,ht,mt,Ot,ct,Rt,Mt)})();