1 line
24 KiB
XML
1 line
24 KiB
XML
<xml version="Mixly 2.0 rc4" board="Python ESP32-C2@MixGo MINI"><block type="procedures_defnoreturn" id="qpd3ree1MNisf.uxM?@K" inline="true" collapsed="true" x="-21" y="-428"><field name="NAME">显示敌机</field><statement name="STACK"><block type="variables_global" id="Z25oqMpMO*_}YQS`]XlI"><value name="VAR"><block type="variables_get" id="Rvar$Pj7hg#.!]a47d(w"><field name="VAR">敌机X坐标</field></block></value><next><block type="variables_set" id=":$wJ/mTc@dfv`osg3:zU"><field name="VAR">敌机是否存在</field><value name="VALUE"><block type="logic_boolean" id="ED-i`[;L1U[6Q8ke3X0A"><field name="BOOL">FALSE</field></block></value><next><block type="controls_forEach" id="|CQ|qO)L~G=t[9^v(fIC"><value name="LIST"><shadow type="list_many_input" id="R]FZp$NWqZ{;09a87_S{"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="r25(F3V/`[32RfVr`Q$x"><value name="FROM"><shadow type="math_number" id="90ePX.QFHM^`aLf03.|]"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="hz`dT$gaV`?Nb=kbruYp"><field name="NUM">8</field></shadow><block type="variables_get" id="_?Ev`j*ynQ0s?qik?m(b"><field name="VAR">屏幕X最大值</field></block></value><value name="STEP"><shadow type="math_number" id=":Za.d5{_EG[1xC}fSdMi"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="C1IIIFh:Rvbs?WHX:fO!"><field name="VAR">x</field></shadow></value><statement name="DO"><block type="controls_if" id="O_[lbHaBa!`4)44?oIW3"><value name="IF0"><block type="display_get_pixel" id="*#nnfAQgj:{MoNh,E3,q"><value name="x"><shadow type="pins_exlcdh" id="Ly(^B@gw2qww_li@fH8O"><field name="PIN">0</field></shadow><block type="variables_get" id="9gXm{/2T@{/S[$M(u9}+"><field name="VAR">x</field></block></value><value name="y"><shadow type="pins_exlcdv" id="FxtA-9Ge3pcn$,`iMC]6"><field name="PIN">0</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="PeQH9RkNVU*edcU?xv{L"><field name="VAR">敌机是否存在</field><value name="VALUE"><block type="logic_boolean" id="sDya/9MxS$4?d5NaT{k)"><field name="BOOL">TRUE</field></block></value><next><block type="controls_flow_statements" id="ZFxtL`CIT5dA,(Z#^ccj"><field name="FLOW">BREAK</field></block></next></block></statement></block></statement><next><block type="controls_if" id="HhkO$~y5s2LF(wMaFMfC"><value name="IF0"><block type="logic_negate" id=")ES*Jmrm@eOoBHQ3zGkb"><value name="BOOL"><block type="variables_get" id="WvslKHC$nb/:HS45exID"><field name="VAR">敌机是否存在</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="kF-th?bNR/SsascLNlld"><field name="VAR">敌机X坐标</field><value name="VALUE"><block type="math_random" id=",eRS#;xmfvbk:3sVPR++"><field name="TYPE">int</field><value name="FROM"><shadow type="math_number" id="a9Jzf|:Sjel$-H8VXb9S"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="D,L,M/S5-,qxJgR4_RO^"><field name="NUM">6</field></shadow><block type="math_arithmetic" id="xls;?!Xp,LyJ|SP@bq-O"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="oSmnY!2585.P2JXx@+!["><field name="NUM">1</field></shadow><block type="variables_get" id="5YJN*8[IaLnG1_gO_qVV"><field name="VAR">屏幕X最大值</field></block></value><value name="B"><shadow type="math_number" id="G,Sn;7LN]C{rgoTk8ZB4"><field name="NUM">1</field></shadow></value></block></value></block></value><next><block type="display_bright_point" id="H)]n}]euuaEU@DEuhsZP"><value name="x"><shadow type="pins_exlcdh" id=".KIUFwN,}B}C`0]5j/MU"><field name="PIN">0</field></shadow><block type="variables_get" id="(dLCn1(N`6(_j]b!ad!b"><field name="VAR">敌机X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="CaWHJNyv6}w)~r`V(*l6"><field name="PIN">0</field></shadow></value><value name="STAT"><shadow type="display_onoff" id="B`q*h?bw+^qqS_rzg;n~"><field name="ONOFF">ON</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></statement></block><block type="procedures_defnoreturn" id="IxY}F4@=hh^cUsP/.hN^" collapsed="true" x="-25" y="-373"><field name="NAME">发射子弹</field><statement name="STACK"><block type="variables_global" id="2O2?zj.wX)is;/-BXVeR"><value name="VAR"><block type="variables_get" id="52!PcNT4JJr[p44b$Q~m"><field name="VAR">子弹X坐标</field></block></value><next><block type="variables_set" id="l@rmsXt:dtawRh;WIYj9"><field name="VAR">子弹X坐标</field><value name="VALUE"><block type="variables_get" id="SJd]G.[0mG66#YB{dGCr"><field name="VAR">本机X坐标</field></block></value><next><block type="esp32_onboard_music_pitch_with_time" id="ed}m|@FZgA8_v})w^:(T"><value name="pitch"><shadow type="pins_tone_notes" id="9)WAKz*/?*a=d.@d$ejS"><field name="PIN">262</field></shadow></value><value name="time"><shadow type="math_number" id=";sEeJ!|]/|9H`GN(2I*]"><field name="NUM">50</field></shadow></value><next><block type="controls_forEach" id="Ln}b)4c^S/;Dh50G6nUR"><value name="LIST"><shadow type="list_many_input" id="1W(w^kv*J?z=JRlE!A8g"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="W9#fZC(k!ssQ_aeKUV4q"><value name="FROM"><shadow type="math_number" id="[d[vzh8EezbuB{#1BeB:"><field name="NUM">2</field></shadow><block type="math_arithmetic" id="~uK#NYY~`?cS$hSj;dP/"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="U,#sdZon*DT#)M3{/(Qk"><field name="NUM">1</field></shadow><block type="variables_get" id="}s9Z0TEk:OVxWwM6[GPp"><field name="VAR">屏幕Y最大值</field></block></value><value name="B"><shadow type="math_number" id="WDNH)jW?_gQI-WvTL=:;"><field name="NUM">2</field></shadow></value></block></value><value name="TO"><shadow type="math_number" id="GB1O61lc.BQM}MYwCJ,R"><field name="NUM">-2</field></shadow></value><value name="STEP"><shadow type="math_number" id="q|gP,+KMZh$+aZ#BX1x4"><field name="NUM">-1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="!qmoDcAPx+ik8.[`.}xi"><field name="VAR">子弹Y坐标</field></shadow></value><statement name="DO"><block type="display_bright_point" id="IY3T,n2APhZ9qTst6Dgf"><value name="x"><shadow type="pins_exlcdh" id="}-$ZiE`#YeRDDT0qJy2E"><field name="PIN">0</field></shadow><block type="variables_get" id="PuX+5=,y=2.pr;kmgv?g"><field name="VAR">子弹X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="OCA9p;pyq8tNawp)l|n6"><field name="PIN">3</field></shadow><block type="variables_get" id="53I{W9Dh4jdy/mxzi{+u"><field name="VAR">子弹Y坐标</field></block></value><value name="STAT"><shadow type="display_onoff" id="]K+^ZYOqechxMNrPbMn]"><field name="ONOFF">ON</field></shadow></value><next><block type="controls_delay_new" id="*c-ois@R9MY}D?FH2gYg"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="fE6e@:/?#-=|Ta#r02b4"><field name="NUM">50</field></shadow></value><next><block type="display_bright_point" id="$HQ$Zr7/wvs85G3mt/ep"><value name="x"><shadow type="pins_exlcdh" id="]X-[K7at*H@Bb?#4h$`L"><field name="PIN">0</field></shadow><block type="variables_get" id="+nIw`MY(}OQ8q2@p~|8G"><field name="VAR">子弹X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="R5fk1sT*QLot{1#NCu$z"><field name="PIN">3</field></shadow><block type="variables_get" id="{b5wh;Hu(:+xSuIVioGk"><field name="VAR">子弹Y坐标</field></block></value><value name="STAT"><shadow type="display_onoff" id="SI`Pe11-={m]IzqEqD=w"><field name="ONOFF">OFF</field></shadow></value></block></next></block></next></block></statement></block></next></block></next></block></next></block></statement></block><block type="variables_set" id="Owq1e}NPu96?ew5-Y2b=" x="-683" y="-306"><field name="VAR">屏幕X最大值</field><value name="VALUE"><block type="math_number" id="Q+ZD{+wqYo=!7`uRc`zJ"><field name="NUM">11</field></block></value><next><block type="variables_set" id="N;7HkikvF$-UU}k9-~m*"><field name="VAR">屏幕Y最大值</field><value name="VALUE"><block type="math_number" id="iyy)kkYd_~YZeL:b;[a,"><field name="NUM">7</field></block></value><next><block type="variables_set" id="S]u+n2`Ey+3HlUFA*h_/"><field name="VAR">本机X坐标</field><value name="VALUE"><block type="math_number" id="QeJPHQb.hV8R?cfs_V8("><field name="NUM">1</field></block></value><next><block type="variables_set" id="6h]=cv4;ktj0a{a6|8]b"><field name="VAR">敌机X坐标</field><value name="VALUE"><block type="math_number" id="JBG8zchM8s][kYWuC_mx"><field name="NUM">1</field></block></value><next><block type="variables_set" id="?v4xuln{T3j^2*Xhe!Gj"><field name="VAR">子弹X坐标</field><value name="VALUE"><block type="math_number" id="QyI/0-*DpL,D2+]HHc1-"><field name="NUM">1</field></block></value><next><block type="variables_set" id="R#v*WZ~{WuN20f?khqxS"><field name="VAR">得分</field><value name="VALUE"><block type="math_number" id="vVDKV|lh6tzEOg8L2]~u"><field name="NUM">0</field></block></value><next><block type="procedures_callnoreturn" id="SG-?H27yRRE0O2/a|BHH" inline="true"><mutation name="显示我机"></mutation><next><block type="controls_whileUntil" id="pV#(+9hooz3`eGwD/vpX"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="/e{;uz{$p[_7z-ffO7Z;"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="procedures_callnoreturn" id="E$GA2BBz~a58d1!|wwP5"><mutation name="显示敌机"></mutation><next><block type="controls_if" id="dcF}Qp$NOQ|S7=[0nzl+"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Kkl^45GDk,D?^oesZm}Z"><value name="btn"><shadow type="pins_button" id="O{VJf*ddSrtMHQb2i0DT"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="7~4pXYXACA0[UL4BT339"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="wZL.nBa]sbQ+Ct**DT]l"><field name="VAR">本机X坐标</field></shadow></value><value name="B"><shadow type="math_number" id=";DX[nvzE^Mu`ycr}Tl~3"><field name="NUM">1</field></shadow></value><next><block type="procedures_callnoreturn" id="#^ALz:0zZ$R05s67x*Rn" inline="true"><mutation name="显示我机"></mutation></block></next></block></statement><next><block type="controls_if" id="Cu^czJMd0ah!GoG14tx/"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="PB3=S$DS)0)Y$?/2=K9g"><value name="btn"><shadow type="pins_button" id="V0xCC|nxT#G+a^uN.y_w"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="s#UNHowoO4-@687Z_a`R"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="WSH:k*1z44[F9sirEhY7"><field name="VAR">本机X坐标</field></shadow></value><value name="B"><shadow type="math_number" id="1H00N4!5YmqZyE8zG@7h"><field name="NUM">1</field></shadow></value><next><block type="procedures_callnoreturn" id="cp8?EoGs!l?8iIZIQE7(" inline="true"><mutation name="显示我机"></mutation></block></next></block></statement><next><block type="controls_if" id="nsD4}@uC^c,[}/Mc!3-T"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="L*Ocgi4PV?)3!9F/{292"><value name="btn"><shadow type="pins_button" id="HzN]g:QO0CqnazT@nXDm"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="procedures_callnoreturn" id="K#]-@V12d_}rA12QHH9$"><mutation name="发射子弹"></mutation></block></statement></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="njP?6slaW@d[DiBmd`5D" collapsed="true" x="-32" y="-273"><field name="NAME">显示我机</field><statement name="STACK"><block type="variables_global" id="jw2w3f2O{5~EKmip!z-o"><value name="VAR"><block type="variables_get" id="VqxIt?FfNJ*7FV]A@M=1"><field name="VAR">本机X坐标</field></block></value><next><block type="variables_set" id="B`S#)_[UtNYmPshEKdRq"><field name="VAR">本机X坐标</field><value name="VALUE"><block type="math_constrain" id="Ub5IS-]eT^F;YYJ|NBIr"><value name="VALUE"><shadow type="math_number" id="7i1.u6nVAn@W*meJAd;c"><field name="NUM">1000</field></shadow><block type="variables_get" id="f!$Nk~@d|ySQgV)(D:oX"><field name="VAR">本机X坐标</field></block></value><value name="LOW"><shadow type="math_number" id="HlDSoYWg(vPh#.)(2~u["><field name="NUM">1</field></shadow></value><value name="HIGH"><shadow type="math_number" id="QC)V-Tu.GwIkrPaQU^V;"><field name="NUM">100</field></shadow><block type="math_arithmetic" id="PgYd}1m(XAst:Kmb,b$("><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="1nub[YaxBzAQRN]]F6@L"><field name="NUM">1</field></shadow><block type="variables_get" id="7k7G-tAu9jo~QS#vZPxn"><field name="VAR">屏幕X最大值</field></block></value><value name="B"><shadow type="math_number" id="rVZw~aOg@={ze7:{o.8@"><field name="NUM">1</field></shadow></value></block></value></block></value><next><block type="controls_forEach" id=")ZE76-c;RJyzDQ+b$iuj"><value name="LIST"><shadow type="list_many_input" id="ZM^7o25em]#1_RVoN81m"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id="Mj5gXsn+e?h$pu$v7=)."><value name="FROM"><shadow type="math_number" id="jd`x981dzYB#(E|I#MpT"><field name="NUM">3</field></shadow><block type="math_arithmetic" id="L^*u|llBX,jE*^zC4Q5t"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="`Q:xkOOAwrIVQVSx-.D+"><field name="NUM">1</field></shadow><block type="variables_get" id="=Xi{Iy.pzbe!iWt_bqcC"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="TLM2iagE*@F;$;p#_0xc"><field name="NUM">2</field></shadow></value></block></value><value name="TO"><shadow type="math_number" id="m3XCJ|x^N;OHn$9G7|Rk"><field name="NUM">5</field></shadow><block type="math_arithmetic" id="`sSc@^p_jwz[eN{l}?#Q"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id=";e}e=}fgr`TBAdOF1piG"><field name="NUM">1</field></shadow><block type="variables_get" id="HitPm5./+;l(kiui;{Wt"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="O9]()mi]_e7W316?O:OR"><field name="NUM">3</field></shadow></value></block></value><value name="STEP"><shadow type="math_number" id="[uIX*QfT,l^kt^E__;$b"><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="`97#zC4)IE,SqEgShUA3"><field name="VAR">x</field></shadow></value><statement name="DO"><block type="display_bright_point" id="y2t82|];!aa3dzo~`;/m"><value name="x"><shadow type="pins_exlcdh" id="N~1Kru:NUTf;_(|C[b?!"><field name="PIN">0</field></shadow><block type="variables_get" id="6Q[0Dxo.xJ2_,VWXbA)*"><field name="VAR">x</field></block></value><value name="y"><shadow type="pins_exlcdv" id="=kp9#e96U,oGr2+fGl{V"><field name="PIN">3</field></shadow><block type="variables_get" id="~;J:pXmMU)e0aa{NhiHW"><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="^+G,vv,Rhop0hiJ5EQJz"><field name="ONOFF">OFF</field></shadow></value><next><block type="display_bright_point" id="JnzxxGMu$zZ@V-}hdU:["><value name="x"><shadow type="pins_exlcdh" id="m!gI=`.Ylvrh]teoZ9[P"><field name="PIN">0</field></shadow><block type="variables_get" id="?Z)TKQh0BcO2hdNE$)_k"><field name="VAR">x</field></block></value><value name="y"><shadow type="pins_exlcdv" id="m/`JxB7Z?0LxdQ!^G$mm"><field name="PIN">4</field></shadow><block type="math_arithmetic" id="LZ6jtHkOx1.D2J5v*]`{"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="xF^K|p,zG(8O]LR-Eeq,"><field name="NUM">1</field></shadow><block type="variables_get" id="E-_dgx;J_mzU|93A1J6)"><field name="VAR">屏幕Y最大值</field></block></value><value name="B"><shadow type="math_number" id="/O:8p{Hu0*J@(?inDh8u"><field name="NUM">1</field></shadow></value></block></value><value name="STAT"><shadow type="display_onoff" id="B,3Bw2)dHCThvzbz=e.k"><field name="ONOFF">OFF</field></shadow></value></block></next></block></statement><next><block type="display_bright_point" id="ZNm=G`I[rn!zNW,=50}["><value name="x"><shadow type="pins_exlcdh" id="gR*f?2+ea5wsZ8/wFHuK"><field name="PIN">0</field></shadow><block type="variables_get" id="7vR|nV]H{Dhv2t6+PW!b"><field name="VAR">本机X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="sigc~spaJ0`)[IbJOU2H"><field name="PIN">4</field></shadow><block type="variables_get" id="i0UpgTDe63r.2`JblG0."><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="m=~o12Iz/S3T6b?h*:56"><field name="ONOFF">ON</field></shadow></value><next><block type="display_bright_point" id="5kegU8)8{S|)pFUpKP2W"><value name="x"><shadow type="pins_exlcdh" id="X`yI_m8EVspa7x/IpAwn"><field name="PIN">0</field></shadow><block type="math_arithmetic" id="zVl[M*?6HFsW4TjMIKDo"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="1ROYQFa+2(@jz1$s$W{v"><field name="NUM">1</field></shadow><block type="variables_get" id="u.o[t@6CZA8[~y@:,*=X"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="OyJLFiYo_:2M(Jwl@v=6"><field name="NUM">1</field></shadow></value></block></value><value name="y"><shadow type="pins_exlcdv" id=";mwS]zf21TrqC09O||RS"><field name="PIN">4</field></shadow><block type="variables_get" id="Ml+}y[r#E}L=O;i48^N["><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="O!p]Vub=mX;E(E|!0ng/"><field name="ONOFF">ON</field></shadow></value><next><block type="display_bright_point" id="V:MqyD|2NrN)zRa=es=j"><value name="x"><shadow type="pins_exlcdh" id=".):Ic0+H8hGfy_Jlmh@G"><field name="PIN">0</field></shadow><block type="math_arithmetic" id="CWstpTA7!E)sUY{wL69J"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="*nzvucnmJ_rsbe=RMGBl"><field name="NUM">1</field></shadow><block type="variables_get" id=",!nyZI5#N!{nxAZXXx~L"><field name="VAR">本机X坐标</field></block></value><value name="B"><shadow type="math_number" id="R@|Yq8?+?jvA[Q2~Ctcl"><field name="NUM">1</field></shadow></value></block></value><value name="y"><shadow type="pins_exlcdv" id="z}z)n_?|-k.B!Ytq[[(G"><field name="PIN">4</field></shadow><block type="variables_get" id="ER#8]VY2g$`!~^9eEEJ*"><field name="VAR">屏幕Y最大值</field></block></value><value name="STAT"><shadow type="display_onoff" id="tiJm?zyeg5^F=Y;}kUHK"><field name="ONOFF">ON</field></shadow></value><next><block type="display_bright_point" id="[=jDIe$tLH.Cl~a4uw`s"><value name="x"><shadow type="pins_exlcdh" id="M2P;3jOPR@YEDXN7o~+I"><field name="PIN">0</field></shadow><block type="variables_get" id="{9-^$t7_:y,nb_}3pHmP"><field name="VAR">本机X坐标</field></block></value><value name="y"><shadow type="pins_exlcdv" id="?-M`zSG3!FOw1wz$K!sU"><field name="PIN">3</field></shadow><block type="math_arithmetic" id="lO[Ai_pUUkJoD[)WZG:{"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="PAs`LJT-6QFBUjC`@J.+"><field name="NUM">1</field></shadow><block type="variables_get" id="B$QN2u!dD4V^3g^R,mg1"><field name="VAR">屏幕Y最大值</field></block></value><value name="B"><shadow type="math_number" id="MZg5)J[zmh,IR`0Xf!~H"><field name="NUM">1</field></shadow></value></block></value><value name="STAT"><shadow type="display_onoff" id="U6#[VLeHJuTRT,$$pMqx"><field name="ONOFF">ON</field></shadow></value><next><block type="esp32_onboard_music_pitch_with_time" id="?)Y-Z|X3/@(0)HB}E#L-"><value name="pitch"><shadow type="pins_tone_notes" id="PuXwm1Ayez~hFaioejg="><field name="PIN">294</field></shadow></value><value name="time"><shadow type="math_number" id="K=iFbYs-v9e-oXMlf#R="><field name="NUM">50</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19taW5pIGltcG9ydCBvbmJvYXJkX21hdHJpeAppbXBvcnQgcmFuZG9tCmZyb20gbWl4Z29fbWluaSBpbXBvcnQgb25ib2FyZF9tdXNpYwppbXBvcnQgdGltZQppbXBvcnQgbWl4Z29fbWluaQoKZGVmIF9FNl85OF9CRV9FN19BNF9CQV9FNl85NV84Q19FNl85Q19CQSgpOgogICAgZ2xvYmFsIF9FNl85NV84Q19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcKICAgIF9FNl85NV84Q19FNl85Q19CQV9FNl85OF9BRl9FNV85MF9BNl9FNV9BRF85OF9FNV85Q19BOCA9IEZhbHNlCiAgICBmb3IgeCBpbiByYW5nZSgwLCBfRTVfQjFfOEZfRTVfQjlfOTVYX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDLCAxKToKICAgICAgICBpZiBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoeCksIGludCgwKSk6CiAgICAgICAgICAgIF9FNl85NV84Q19FNl85Q19CQV9FNl85OF9BRl9FNV85MF9BNl9FNV9BRF85OF9FNV85Q19BOCA9IFRydWUKICAgICAgICAgICAgYnJlYWsKICAgIGlmIG5vdCBfRTZfOTVfOENfRTZfOUNfQkFfRTZfOThfQUZfRTVfOTBfQTZfRTVfQURfOThfRTVfOUNfQTg6CiAgICAgICAgX0U2Xzk1XzhDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyA9IHJhbmRvbS5yYW5kaW50KDEsIF9FNV9CMV84Rl9FNV9COV85NVhfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAxKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTZfOTVfOENfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KDApLCAxKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQoKZGVmIF9FNV84Rl85MV9FNV9CMF84NF9FNV9BRF85MF9FNV9CQ19COSgpOgogICAgZ2xvYmFsIF9FNV9BRF85MF9FNV9CQ19COVhfRTVfOURfOTBfRTZfQTBfODcKICAgIF9FNV9BRF85MF9FNV9CQ19COVhfRTVfOURfOTBfRTZfQTBfODcgPSBfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3CiAgICBvbmJvYXJkX211c2ljLnBpdGNoX3RpbWUoMjYyLCA1MCkKICAgIGZvciBfRTVfQURfOTBfRTVfQkNfQjlZX0U1XzlEXzkwX0U2X0EwXzg3IGluIHJhbmdlKF9FNV9CMV84Rl9FNV9COV85NVlfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAyLCAtMiwgLTEpOgogICAgICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTVfQURfOTBfRTVfQkNfQjlYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KF9FNV9BRF85MF9FNV9CQ19COVlfRTVfOURfOTBfRTZfQTBfODcpLCAxKQogICAgICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgICAgIHRpbWUuc2xlZXBfbXMoNTApCiAgICAgICAgb25ib2FyZF9tYXRyaXgucGl4ZWwoaW50KF9FNV9BRF85MF9FNV9CQ19COVhfRTVfOURfOTBfRTZfQTBfODcpLCBpbnQoX0U1X0FEXzkwX0U1X0JDX0I5WV9FNV85RF85MF9FNl9BMF84NyksIDApCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvdygpCgpkZWYgX0U2Xzk4X0JFX0U3X0E0X0JBX0U2Xzg4XzkxX0U2XzlDX0JBKCk6CiAgICBnbG9iYWwgX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NwogICAgX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyA9IG1pbihtYXgoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NywgMSksIF9FNV9CMV84Rl9FNV9COV85NVhfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAxKQogICAgZm9yIHggaW4gcmFuZ2UoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyAtIDIsIF9FNl85Q19BQ19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcgKyAzLCAxKToKICAgICAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoeCksIGludChfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDKSwgMCkKICAgICAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkKICAgICAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoeCksIGludChfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDIC0gMSksIDApCiAgICAgICAgb25ib2FyZF9tYXRyaXguc2hvdygpCiAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyksIGludChfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDKSwgMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgb25ib2FyZF9tYXRyaXgucGl4ZWwoaW50KF9FNl85Q19BQ19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcgLSAxKSwgaW50KF9FNV9CMV84Rl9FNV9COV85NVlfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMpLCAxKQogICAgb25ib2FyZF9tYXRyaXguc2hvdygpCiAgICBvbmJvYXJkX21hdHJpeC5waXhlbChpbnQoX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyArIDEpLCBpbnQoX0U1X0IxXzhGX0U1X0I5Xzk1WV9FNl85Q184MF9FNV9BNF9BN19FNV84MF9CQyksIDEpCiAgICBvbmJvYXJkX21hdHJpeC5zaG93KCkKICAgIG9uYm9hcmRfbWF0cml4LnBpeGVsKGludChfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3KSwgaW50KF9FNV9CMV84Rl9FNV9COV85NVlfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgLSAxKSwgMSkKICAgIG9uYm9hcmRfbWF0cml4LnNob3coKQogICAgb25ib2FyZF9tdXNpYy5waXRjaF90aW1lKDI5NCwgNTApCgoKCl9FNV9CMV84Rl9FNV9COV85NVhfRTZfOUNfODBfRTVfQTRfQTdfRTVfODBfQkMgPSAxMQpfRTVfQjFfOEZfRTVfQjlfOTVZX0U2XzlDXzgwX0U1X0E0X0E3X0U1XzgwX0JDID0gNwpfRTZfOUNfQUNfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3ID0gMQpfRTZfOTVfOENfRTZfOUNfQkFYX0U1XzlEXzkwX0U2X0EwXzg3ID0gMQpfRTVfQURfOTBfRTVfQkNfQjlYX0U1XzlEXzkwX0U2X0EwXzg3ID0gMQpfRTVfQkVfOTdfRTVfODhfODYgPSAwCl9FNl85OF9CRV9FN19BNF9CQV9FNl84OF85MV9FNl85Q19CQSgpCndoaWxlIFRydWU6CiAgICBfRTZfOThfQkVfRTdfQTRfQkFfRTZfOTVfOENfRTZfOUNfQkEoKQogICAgaWYgbWl4Z29fbWluaS5BMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIF9FNl85Q19BQ19FNl85Q19CQVhfRTVfOURfOTBfRTZfQTBfODcgLT0gMQogICAgICAgIF9FNl85OF9CRV9FN19BNF9CQV9FNl84OF85MV9FNl85Q19CQSgpCiAgICBpZiBtaXhnb19taW5pLkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgX0U2XzlDX0FDX0U2XzlDX0JBWF9FNV85RF85MF9FNl9BMF84NyArPSAxCiAgICAgICAgX0U2Xzk4X0JFX0U3X0E0X0JBX0U2Xzg4XzkxX0U2XzlDX0JBKCkKICAgIGlmIG1peGdvX21pbmkuQjJrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBfRTVfOEZfOTFfRTVfQjBfODRfRTVfQURfOTBfRTVfQkNfQjkoKQo=</code> |