From 2cb9bbe6baf93c7cd6cb6505b924d954c5e13c17 Mon Sep 17 00:00:00 2001 From: sesena Date: Wed, 17 Jul 2024 15:46:40 +0300 Subject: [PATCH 1/5] mobile events --- extensions/extensions.json | 1 + extensions/sesena0u0/mobile_events.js | 148 ++++++++++++++++++++++++++ images/sesena0u0/mobile_events.png | Bin 0 -> 67609 bytes 3 files changed, 149 insertions(+) create mode 100644 extensions/sesena0u0/mobile_events.js create mode 100644 images/sesena0u0/mobile_events.png diff --git a/extensions/extensions.json b/extensions/extensions.json index 044cf1114f..e795336cd8 100644 --- a/extensions/extensions.json +++ b/extensions/extensions.json @@ -32,6 +32,7 @@ "Lily/MoreEvents", "Lily/ListTools", "veggiecan/mobilekeyboard", + "sesena0u0/mobile_events", "NexusKitten/moremotion", "CubesterYT/WindowControls", "veggiecan/browserfullscreen", diff --git a/extensions/sesena0u0/mobile_events.js b/extensions/sesena0u0/mobile_events.js new file mode 100644 index 0000000000..700542df8d --- /dev/null +++ b/extensions/sesena0u0/mobile_events.js @@ -0,0 +1,148 @@ +// Name: Mobile events +// ID: Sesena0u0MobileEvents +// Description: Use swipe, click event and more in mobile. +// By: Sesena0u0 +// License: MIT +// Version V.1.0.0 + +(function (Scratch) { + "use strict"; + + const menuIconURI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIGRhdGEtbmFtZT0iQ2FscXVlIDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3Ljg2IDQ5LjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZvbnQtZmFtaWx5OiBFcmFzSVRDLUJvbGQsICdFcmFzIEJvbGQgSVRDJzsKICAgICAgICBmb250LXNpemU6IDUuN3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCwgLmNscy01LCAuY2xzLTIgewogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICMxZmZmMzQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzMzMzsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iNTYuODYiIGhlaWdodD0iNDguMyIgcng9IjE3IiByeT0iMTciLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00MC4zNiwxYzkuMSwwLDE2LjUsNy40LDE2LjUsMTYuNXYxNC4zYzAsOS4xLTcuNCwxNi41LTE2LjUsMTYuNWgtMjIuODZjLTkuMSwwLTE2LjUtNy40LTE2LjUtMTYuNXYtMTQuM0MxLDguNCw4LjQsMSwxNy41LDFoMjIuODZNNDAuMzYsMGgtMjIuODZDNy44NCwwLDAsNy44NCwwLDE3LjV2MTQuM2MwLDkuNjYsNy44NCwxNy41LDE3LjUsMTcuNWgyMi44NmM5LjY2LDAsMTcuNS03Ljg0LDE3LjUtMTcuNXYtMTQuM0M1Ny44Niw3Ljg0LDUwLjAyLDAsNDAuMzYsMGgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iNi4yMSIgeT0iMy4wMyIgd2lkdGg9IjQ1LjMxIiBoZWlnaHQ9IjQyLjc0IiByeD0iOC43MSIgcnk9IjguNzEiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi44MiwzLjUzYzQuNTMsMCw4LjIxLDMuNjgsOC4yMSw4LjIxdjI1LjMyYzAsNC41My0zLjY4LDguMjEtOC4yMSw4LjIxSDE0LjkyYy00LjUzLDAtOC4yMS0zLjY4LTguMjEtOC4yMVYxMS43NGMwLTQuNTMsMy42OC04LjIxLDguMjEtOC4yMWgyNy44OU00Mi44MiwyLjUzSDE0LjkyYy01LjA5LDAtOS4yMSw0LjEyLTkuMjEsOS4yMXYyNS4zMmMwLDUuMDksNC4xMiw5LjIxLDkuMjEsOS4yMWgyNy44OWM1LjA5LDAsOS4yMS00LjEyLDkuMjEtOS4yMVYxMS43NGMwLTUuMDktNC4xMi05LjIxLTkuMjEtOS4yMWgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjc0LDEuNTJjLS4xNCwwLS4yNi0uMTItLjI2LS4yNnMuMTItLjI2LjI2LS4yNmgxMi4zOWMuMTQsMCwuMjYuMTIuMjYuMjZzLS4xMi4yNi0uMjYuMjZoLTEyLjM5WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1LjEyLjUxaC0xMi4zOWMtLjQyLDAtLjc2LjM0LS43Ni43NnMuMzQuNzYuNzYuNzZoMTIuMzljLjQyLDAsLjc2LS4zNC43Ni0uNzZzLS4zNC0uNzYtLjc2LS43NmgwWiIvPgogICAgICA8L2c+CiAgICAgIDx0ZXh0IGNsYXNzPSJjbHMtMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41NyAxOC43OSkgc2NhbGUoMi4xNCAxKSI+PHRzcGFuIHg9IjAiIHk9IjAiPk1vYmlsZTwvdHNwYW4+PHRzcGFuIHg9Ii4wMyIgeT0iNi44NCI+RXZlbnRzPC90c3Bhbj48L3RleHQ+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjAxLDM0Ljg5YzMuMTQuNDgsOC4yNCwxLjAxLDE0LjM1LjUxLDEwLjQ1LS44NiwxNy4yMi00LjE5LDE5Ljc0LTUuNTYtLjgzLjc2LTYuNiw1Ljg4LTE3Ljk0LDYuODMtNy45OS42Ny0xNC4xNC0xLjEyLTE2LjE1LTEuNzdaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4="; + + class MobileEvent { + getInfo() { + return { + id: "Sesena0u0MobileEvents", + name: "Mobile events", + color1: "#50aa50", + color2: "#50aa50", + color3: "#50aa50", + menuIconURI, + blocks: [ + { + opcode: "checkSwipe", + blockType: Scratch.BlockType.BOOLEAN, + text: "is swipe detected?", + }, + { + opcode: "checkClick", + blockType: Scratch.BlockType.BOOLEAN, + text: "is click detected?", + }, + { + opcode: "isMobile", + blockType: Scratch.BlockType.BOOLEAN, + text: "is mobile device?", + }, + { + opcode: "getTouchCount", + blockType: Scratch.BlockType.REPORTER, + text: "number of touches", + }, + { + opcode: "isLandscape", + blockType: Scratch.BlockType.BOOLEAN, + text: "is landscape?", + }, + { + opcode: "getOrientation", + blockType: Scratch.BlockType.REPORTER, + text: "device orientation", + } + ], + }; + } + + constructor() { + this.isSwipe = false; + this.isClick = false; + this.startX = 0; + this.startY = 0; + this.startTime = 0; + this.touchThreshold = 50; + this.timeThreshold = 300; + this.touchCount = 0; + + document.addEventListener( + "touchstart", + (e) => this.handleTouchStart(e), + false + ); + document.addEventListener( + "touchend", + (e) => this.handleTouchEnd(e), + false + ); + window.addEventListener( + "deviceorientation", + (e) => this.handleOrientation(e), + false + ); + } + + handleTouchStart(e) { + this.touchCount = e.touches.length; + const touch = e.touches[0]; + this.startX = touch.screenX; + this.startY = touch.screenY; + this.startTime = new Date().getTime(); + this.isSwipe = false; + this.isClick = false; + } + + handleTouchEnd(e) { + this.touchCount = e.touches.length; + const touch = e.changedTouches[0]; + const diffX = touch.screenX - this.startX; + const diffY = touch.screenY - this.startY; + const diffTime = new Date().getTime() - this.startTime; + + if (diffTime < this.timeThreshold) { + if ( + Math.abs(diffX) > this.touchThreshold || + Math.abs(diffY) > this.touchThreshold + ) { + this.isSwipe = true; + } else { + this.isClick = true; + } + } + } + + handleOrientation(e) { + this.orientation = e.alpha; + } + + checkSwipe() { + const swipeDetected = this.isSwipe; + this.isSwipe = false; + return swipeDetected; + } + + checkClick() { + const clickDetected = this.isClick; + this.isClick = false; + return clickDetected; + } + + isMobile() { + return /Mobi|Android/i.test(navigator.userAgent); + } + + getTouchCount() { + return this.touchCount; + } + + isLandscape() { + return window.innerWidth > window.innerHeight; + } + + getOrientation() { + return window.orientation || screen.orientation.angle || "unknown"; + } + + } + + Scratch.extensions.register(new MobileEvent()); +})(Scratch); diff --git a/images/sesena0u0/mobile_events.png b/images/sesena0u0/mobile_events.png new file mode 100644 index 0000000000000000000000000000000000000000..2adea91bb9e40189bab94c00f401dc17bdce130c GIT binary patch literal 67609 zcmd?R2T)YoyD!*+ih`nmfRZIh22l{3tbzy#sAOnFK}522LpM1bC1)fE2na|{l4+uW z*d)oR0j0^ITXKfCw&(osyLaZ!ymzZ+YO3x~MZsQs@3q#KeqUPMfsZtl&r>o{!eFrT zDi0K&z+fk*VKDN5GpE4_`jJQ}_;dF40|OKcCZr1ep1`;|s>5I$Fcrl++Rh)A$K75h z&3Ulzu#230fOrsbNrk+aGq=~9xi9MWUsf1ijWd!fjW>C0(TjXn`wA~>-m3^r;zQC} zBz{Vh>?|CA|8yX3gtD!1L;M~*o}25+vY{m{^TYgy%V%zwt98-dGm79Rr{$02aQJne zd;0>VxC0zU-Q@g${iYDtks%Cj4u@j52)9)m)QyY0KBnJ=wgxYU{i?SBv<;&W;>w2qPmcUNcD zWc51c932QZkMmWg-9(y5jcN6BNZ0UgXXC4DT6t+&|=3cVV+LHJX3ESk=LhnX= zC~u9dW;56@6Iw$_t#>E5BsbuTe7T;~v8hb2njgtlz8$ipOzE3J%0{(eOuL4-)@7RK zxJ)}s1wr3xJS%< z#{mk3Z;Q#WX^VW~6(wX?BYT$60CJDj)cQ2y=O5$IOs%pzYn#M?C4bJTF!m2lN0V)b z_a1;5z;u>#46QNOw>nqJu#(DPkvt`i%1mB$6kDzLj1_Ikh;3xmDdoj+0G9;=K`)WBX_OkYr0}Mcqo%)9n8T*@(L^oe7Al zQ%k}b)dD1I)%(7yRSa+LfIC5L{8!L%&_WAm4LU z(&L5sk&>!EzN05*n~|Rtc~e<;!sL@0vDWb{p&kre86^ zNaHcSnqwP$=&N)JS^3ssTev_3x|MCXtwfWG|H}t2{2ZUqyGRDcymQO1FTa^8EXvd&EcjH>siFASV-i>)@=o1;qB% z*Td@c&}i%;w6y=+-q(CcvCUA52a}e1C!t$9LhU&_1V~JHk&&Yh@HeL>5@VS;$XRWk4kjg z_~=y($2veiuzQ!=*Ef&*@8j_X1EUVmNJQ9*mUN+pQ|k(@hyfbVXFw|*a72tHny^Bb zpM{n~1G0B>zAo9)IH0$>ix?dWub5dgFd2WtzPs#JTJN~XM_lc6AiAV9lqJ`2HV<+C zzTC%R^m|vZaJK(xmc+~|zH@(P)}0#VIXNNa>C^q5J)~pd@J3$!js1Ls{`I(Z3-!+a z)-~sbOZ&2M6AflA?%gp5JILK+!C6#w)oQ%gAorSV+!V(2@gxdf*J2^#Z@z6%+DgLW zpJrY0=oa2}N?6*)Pc;yNWHFg35^&>ip*=B%U3k*2MW;-+332EfP0rJB?zNp8$H_+D zmc)I#7m!%CwrOdxxuwWc>;zi*tl)ezTU$j(#&u?hoDt+;$ot$`;A(&?xkvW*%Ml8H zwBiQ$f1BHzE{rf(lQSW{sHL$@&veRdGMtLHft_x0|0tB;wZHj6ko+S{{$a5jC#UJa z1^XZ!j1BY~5(EA^$)oMNVorRyaAq3DXEbNB!$kPdxzrX5cO6WS47(5!5EnW;$M}?^FNIQ&fzc!rQk8zPL znQzg5XUDo=93K6({Iz245Lci~y<*|q6VD`(HCOJ+A(JG_2H`Z z6g+L$+38qMJ0JXVkNNM({{QLYfFBC2p=sqY@mDD9H#~_{ldDv)Yi`BulOaTW@G+=4 z!hq}G-c`W#FeA`T#J_j7|JU2d-};-lns6@> z4bNZQK?z~iNH=S7bmjf;6`9$S_>1Sq5`wZXc+U{miUZ%X)Uw2dt2buU_f$DMu1?D?=d-M32 z>8PUrlOT1CIJWn0ngkOX_H&ff)oj5^3EPF?nZ~w{8?eOz`xM^252>F91@bDJ9{gYq zrkn$sHAX0$+!=xY1^+KDrN$xYu(t1T(BN+MHLPk+nkmhNWZP4Msk<2VFoe}rRzwC) z%ea4^FpAA{iTlpkUzh_?Tx_LhRJL3vOhW3PzD6P1G@L34wz4F)yEfy}f<9Q*Y&32t z&Z;`kaq>Tjr~Yq*yrDqEVb@p3lkYhkVB}><_WAe;rUHNpfOaMP1)*`kWoI*z8r4&T z*2E&|Rlue{Q9LH8<005(dU##M&jb|autnCPg<_I%)0&~UIY+@RxrYp^xWuQ(q4!PS z2l3eH5|dy=je{f^c6#YzYm8yAf?XSkpE@raxR`jyu(a0gWi$lXA2yR3ef8>1UcYF+ zx0Js5OZ}EPhZYxw-xOZie@*1g$pV)$u2E{oY2(xFtutnHVtd2ZVq3eClwk&&-@pYd+YGJ@t?(ax*QmS-AQEI(A5aRat0rKRJU+MqFBjVJxow6q6SGsxD)QN2kNC9 zwf|*i$Y#iHP3`zTR(1BR!+;u}G8@EiEcw0l(4nf`!GnBhLEORFh!Axw&LqDKMve_>bqVSFn&G7uD_WvV(&Q#O%E5FiQTwCt0}kpfG7-(CK;TXBFV`A1+jjaFdfy+ulwf_F_3d1vAy~)XgP6O-aI+6z|_?|zt zl2PI&m0(+I>jRmC-``hvyS+R|SAiZ+`JX0r<_J_3KkgXu*JQwR&-#1)s&m-3Uyh#; z=8Z_SC{qyWk)oslku!*swL!>8InBwLR*~HU6LO>DH3_spAKHAqUbq=|tLeh|3BeF9 zJu}pD*v^l87nqtIYlGvW*^MXR4Zxd zW!d*Z{&>Qo;j-89yJI(m^R9Mt%!x-t$JUHT{?ynf);(7%r%_9Pq<_SzLu5s+t3NK^ zzdAF$QAj7Y+TYqa21(%S*E`PA$Y9`i?Zq!!{|DGO)>zzO(?;d9M5l!^V*RQXWXdko| zo3*TooCvA_B%Qj86{VVi#qxul^Z_$&kg~AA_s^bx6nGLjVD{n#H;ML{O6D!M_bPl8 zpJhPsS7lj$y=(Toc2s-~v)u0VJGjo>-j_#4UFGk1qVrn<>{Lr zOX#92HEKNOe_Tz{(Rl_Yq-K>8Um5Q3vgX6A`y%fh9~PB}p7BNi+5(1Bb`9MLj9#{X zc1=adevpSQSFiCP;<3Xu7<;*|HKPSh7W@B76oyjs(CbPHw?MB1u8SUhFN-|CEupkuTuJZZ z$tMaquW}4~ij#Y1fqVMFv%8p%ks%1Ll)*$7r=)Ak2T^~t)&w-eJ&n4~-<)F+cjV*=Lnh3cn z+IHINoV}aaHIsUom7NR6-@0~8Jh$iUCm34C@BS$({JStig!7@nDgBD4hrK2plmx4x z{w6>9R z7lAuquaRY{keGQy^C@dZLD^;x7i(aRd+Y-3S>0rWGbDXc+{QYnJbYYkX@^SwSpQ)% zb9X8ytQT03z8~akLIvlPvsg>h1qN))G1dn^e%Ad#fdvoSQmMy$Cgs+PY2bfoi~s<< z{3VNybzzboZ?|S6G@SSO`X}z0Es_Qm^DECL8iaMFo|i-yZ$U+N{}=7-JL=E zgROi3kmLLzt#?Uz9_V>Z_Um{HZ~;2**N?4ZtA69QvskSUGt@J^PbkFe zkBl=FG?ZD67E?`1(~Ek|2E%nuDlkE|(+Jtl4zHZVivCK1RB$@ELcFE)4>9Y4cG6K7 z1Uy}4E}24nj%{8dYG?pFM+es?|9iSGOJ4h!KQZWN zam<*}N-ibLJQvt)F>-%{hsW>ece}$@kx6R~CoBpik@}}+7sHIqas^<~<=FbXhIBRR zj{*Q2a`DhKtId<1wxh)W(#Bd(z;JjRaqyMPtHUxgi{sf-#z>gXM>!H1?7>i*=)pq1 zSv4WE1_TCBTpa^K9=J1Hggr69daiKRm_cCx%zbrHQnES7RvkpCR{=~xfq8AafFKB8 z8i(g5-=l5jFB}UD9_@^w0Kwe-2mL=cmr%#qUw$=(6d1g6JUgdhy4<cI@TyxfXD2;9sLQ>BBmbM_F-SSC8nW!_rg9>k33I0j)1&r{3&y-trjxHG%xA0$Nkozd&>?Lyg(pCV zbQXaLLNb2=$vkdO`(yFFqLyt*ubUdj?R0lp+5fJA?x|}*(r16?^3JQ8gN0}-oJ>4EYeAt+ym1PPXYvI$R!+6it`B&%c z_t79Qrpb#_p>PJ1K{IdZo_i{VybcWTr!q;y%B zq=3=}cVyS~!oot4(XlZ?vKujQ%)Y_+GR33WgoFfB5Y0Gr%Wf;Wxw-WZbWYfAf<((< zD^9Z+(uUDiyjMWZHIzqO3h}UpMc~B8KfK(i6MdLcIQrT|OGk47>u$sObV=^%>+gO! z9EIuWW?fWLFq|GB(b3VdQFa?o$1K@3e)blmAcGz|> zEeTlkT@H#z=GQdpY3EE1{4HA&@~Wim1VU;K4jS`Q3Jl8yJg1dC6)#deI<>gCIJGrq zAI`oT$sS+6s-f68GskP{JXT3qD;}Ao7W{G+ z?|3c{l4u=d1<0*kv9-S`LH`jaE+Nr0HnCOl%HBR@vlQUT#15A_y+0D=k(F||WIyxh zEG*+<>j~}nU!sRiWn%+U#^sML>*?t+CM6~H^z=k(nZsVBrl)fetCtE5Sbq$#;W{O3 zH?>Jalp&`-A^@)Db})NM*WI(zp+~m}UurI|sF>Bh0yD6(whr#<>iR1cQC`R|xn5)J z&!R9x0~U%ziMmS{eqc{R10Ut&tEE+w({+vjDe5*J70#avYk#PvrS# z{YPNyXaKb_O3+(fb=N&G12JQHf+5n!Af*HuK$)47lM|}&>d7x_Pxzt}ovpaLLx-PtM|3)Sgom4rLDdzQsRp*G0zuN$CVVhFZxSDIkEe}UdczeVBjr&VG&ndoKR*w7ADn@* zvU0v*xz%WKu(Gn*R9hrj!(*4(y)gOxA<=0dQ?;vLebL9`a(VLfv~ThNC^A?E$<-9yVtW@290bvux4m7;ZQ?d`+; z{1)er$T?Wm)zym~2+fu)5LlS`Kkd#*o9;X)Z1`QL1=k@{D26s}IyJpPjUBC69CmVi zi9rBEu^BDn&$5DLbF;FtmZFW5@|LQfKyU4o046UVGAOs8@dYJL@%G(5$yz?5?G@`5WWDgXh=Oo7&1dZ=7J_|1l; z?xRp+-4g=7U_YuldrU|=&9DxsOfY@Md$_Fxr|DE%DO@`$U-h_vf?%x`U#YlG?akeBZU*4boVLmh0S{#-@0o{x)^qWB zQ7r&d(J!|eC>zrgaL46Bw8kk=dzYYA=QsEjLqkI$=}F||C9*wJ@0xEt?VS&#!smAW z{CSWHD$u`|FyEZPC6`bt%m4<1db)xi#Do|uy0$b2)Y%`YLzi{&)<@u;_6?9ufrdo~ z;vO|@?f*A*`2V&IhX0QVqu-Tz^slo3K)YK1`*m>s4-D2$!JN1rR}i|ns+p+UD6Lx< zkU5%=*wWy+s_K6D?S;Gf6f$f8GD4vwg|L!!9|=K%Ntt-pZYd_emZrC^#!|_BcG>r~ z)23DPpU0w`qjhjNY287_a|FBc@?tq^JDWghy?*mYP^(MASI=?BEs*7Xvm^ z?9$Y062`n}Mc`UWpv#AvpB$`Ya9r~&ZB~+boy(yKM(;l9Q}?p#6j*A5 z7BpAqP&VKzmnQ1USH9FSor4~Gkf0EjTUwqfhZaw)hR%;f^ZKypEMyt!jXFV_=Tjqt z=RVQ0Rd;_@o&)s>6?SP_AD34rGTHnFSFmVS@ObCx3(y@bxHC|3tG{Kid9St|x?80J zR=iw`lqg3TsX=W)K3=e^Z#(5nIZ1BoLDkL}t$S8;5aE1&3Ss8Iz_PQ((6$s5&rI`i zWfeVDTfqZjo&Mhc9l)^L67dsd0|5aS^6i3VM-#M3P!samRWf*NC}8ezkIkY07>E#s z_}J9`E@!eOZ1z5gPQaXnCy_#e)lj$6yY}ofAG4@&eL~yed=xap8h1pxO-NQv)^~OF za*0)+0re656)^tg9K_t8F*Z`5vsV zRS3KB&M6KLIM6|an8I^Tj5Ni7=@Z3BrOfTKU|h%^ ztb^Oxv>A#F4%qpUkol^xpzXjDh|PNjVxr5hCl#zn8XCY1Gv#$$2MM$!Vfx7@kr!#C z6PV4+k}9FuBjnDWG@ofwdxyo_Lo$19ixSyB4^0nzn)AE!Y~WvSA;4N`7pFEQMfdE2 zk-tTkdlLCN7*fvG>e#0OHB`FhFgqQJu`D_aG+_7 zS+{YpnSOQ4kG?q7ZeeNCHajmk#m+L!tJ=!^z=VrSY8Jf7@th2<{}xF#lVEK<1r{kT zf38%EGQX#C0&$fYqz&>#MvM(Evmu~T3xm-DvW3(UHEinU6{+85>77=0nk#lTTAkfj zre-=w$M-1^_i9Uvuih$Zoh=yC)}m{udZ~V}wq*YT=>=Z@%mO5#CTfgjGGcBg&5URp z(Xks0(V8?k!;gOA6+cwF3YYI!J5eqU`qAf%ci+7=G}Iz*TrN=W{+zRt2~6-YA=+f> z1pQA|LFOswcZpH7MemwO%aF)ZfdzMnRnkjKX6r%B)?dvBPE_jK+w0Sq)JI?-!+yky zTgqh@=+M5-*h4G&w4PQJkr1+KJ!Ja2VY0IQSteHglnWU~P04I!Pg5U^{UNHbe4l*8@dlFp%q~K>dEGadT<4T#a#E1d`>S zAwANLVu(piG6u4&M-l)QGo_qrta@y6PDDhlqxlWe4Gt&&3+!Pa zGwL8=x|3zau3wKB-Mzqa`=T^@`N7J;y30==3M6*YYGb*yI}$JQ3?v!tByLWEf%ZtO~AM(gg*+NtL(FRpe{V{5Ak+2>|x zrDD>NXQSIQs9_wkQqz2b@^#f>B-+@Fz@;IA7T4TEE%T9u#YNmoJ*naNNV{unbW|Y1 z?5Uao?|GQ_iv<93ki8MFjXM}5R(Z;Lu7}?IcDwZslh3o{J{_)nb=|WM{U2%=YIWBE z^7kN=lpm_N0TxL5D)_FL)Nfgnb62DHeML2DuB)-z;M|?NyM0$BD>F{Ufbf}Ld&=V^ ztlbA7$M3M1O+d%XM-~f$j3SMq4M+F?NS;3;Q6?+@zT)z5F;~yJ6B?a)i=F|e!gS}o z(-?pz6@^w~6acPQE4j7p`nRqXnuN>WmSplWUq9VyY++$hR#9=SqV*_Q){Pc^VW6O) zL7qgb8ape}G^23)3~WG?LzyU7QpgWnCt#q#ZI4YW_vK}{mUe20BL<^vZ*Si=XK8Dz zUQ4j!&)1CoP%C}A-9S@Qb7Ny;+W5ZJ@>?p{KzFnbauc|GGix*B33DMTV2=E3E{7r4 zsqG@0ne3WWt(5ygbBPz3{KOz7zxMov3v-amO1&4x0!0P~!Lfc|>kLOf5A<2Cq_ozY za4q+!kHL`1|{tIXmC>^Yb%(^@?wAf8Tzh@EXWD zi_P0(Us+lPhJ}TJgc;=Mzj{q4=}@wInFAX6>=UJrfh2D38vj zdQ5Y3v)$k!FudmBVSN^PPrNl5Z1!pd7hNatyOB=nw_ZOO`5Du;GdzNFSX>;aRXY(> z)<3S>Zo5*IFIrzyU7ePfC&=df(?`jl!ndrlQrXRIKY#t)g$v4FUS1p9+sY;;CNIOq zK(>il9*%6atMyIJ^YQVSCy~M@CMLAsWLTtl+=^KzPBzE`TD0KXrsm~Z4j9aK=eA}} zk|(fHNfRpHr*v8*cG%C;J}fz7qxy^u^>#Yq1A{_V2gU2)Ac`xp%7nsM05%8KNh zd}VeI@h~=7CJzsfct2E3T50J`h*{gjaWNSg7EPH|#f_~k-Hvr_ekTzfFwgQxDR1d^ zSHFiw-8I0(w4x$WS6A2E!u3nAAf9m!9d`Y`s_Z1~6gdy6de_;9GN{=O(78PjEK*c# z3@nhKgFUlMwt7z{+~JRPZwyg;xU=;Z$}a(l0UrQ;DrVc(+8 zWrM2l)X%SPR(A;Db8O9>Wo9j5z@>avw*)6APa?TV^_U;9S4uSbReuvLq9YJi z?HhJGcXk5lR!1|YzJFQ;fk(GyO4y{7r_7(7-+c4N!PLDrx>v9ZvQp)z^44{?_0vB6 z<-;v)6?Aqw>I~uZ>C;m?s|22uxxsawoSK^b*;8&!YcpO%%S{PFyk60Qg?F~}Vp zjb+ZB!aVla+gNbkX<{TupCT)pt*)-J-&}N_FR%~w8kk_)E_lk?>EtW<#(AYTW2f)e zubo|c&zpZ}(Dd^s4Dh^lkD0#7mA<+Vx%hPMbZ@M7mJR?)&bdH7JDOwe%se(Y^3ya5 zFObtT4@&NYFFxd}ftv1V`BGC1y@1y#JB_?kU@-74mE~Jm7i)kME$m)0fPi=mf9Z?z z_`3|$z#l^*8KD@_A_8XxxpvUf77}FmmG**UXGjBRc|H+V#h-G8B}AT;EqUES9{c=W ztp%ZZxWaYwgS*& z6iD8m$`E|#5=T~R2~f<>-=FSm7^r5amzJWwY9s;MyoO929~)x^nj^9+qp}DPP1Ajf z&b)Hrz8HFWmik;p0IT{m8NsvQNHGX)G_sG+0A&tA)AMA}|K*Gq$Spj6x;JH2S zFwIH|n4Bo#@pK%ob|H~=0n`wHDRea)@8{~<+W})(mf!TdPE8x7xZR`uI`&2O=l9i7 z^CD8n=?5dm8)!7T`PX-UL8*|$8}uUcJN(N)z0J!r5m9}WYL8X3o@V$tXk~)k{Run` zi|-&58&l3*Xh}(tlU>@mXYXMxQ{iNdAIBrK&qH8wv<`54Km6FieVSN9C_LrqWmSh| zH92;5Uv3NxGWxTjgTeU7%MEB*(i3l^hsL*gue1u6ordbBoWZ4WV_|VnfxE9yOH6B- z;U1r4Lk@p^j8JGOZ7kC{;#g%-+V?7c@C0O~w?Tx*;WQu?9{#Yl#zje{s`~1!{((!I zZYHv*YjV=JZ!hgA6YHfXN}u0TktpvUYH_<|6R>SFe6i?h^(D;|DSFKmIpf#q0Xdx< zM+X}V!~Mg~1dOCzNTv9#SZ(EmdgQOP%_)vkDvr<9h3hAVh8Q8$Ynuz!-yxF^PUne4je~NjauwBH<|dc|oTjz-W5#I*8XB{A?^cWHcwe#}uLv7W8B;xk z3lADGF`JQADqAK%BLYH}jfK9|jU27@Ldor2y{CcQ4Qs0S0Xz%I-d?n3a~AAB>N@q4 zD8-$d^sS*`Va;E@D41#q19wPy`lZT4J>e{3RnB>qT(OWuByig;AVQk@{p-8Z;RN!` zG^d@-qcworLavlfhFS^lM#sgiwMeO-&YwF6MrFiEb4tKzvdB1J-&!7_gJ3;vyTPJ6 zS(}X!79G5%!p0|^aneCcZYzn@LD?vW+#V0~cept|j%Q)Fu?xFkH^Bl42{@gO4_Ys? z+%4Q?AXs;o;e-^~d8pcn2SbXn`i=VpQK0SLSzs;83P*AmQ}y2UK|D!>bJx`@MgzB8 zF+Vv{X>X#Ff2A@4xEyFx#MEv;De&$sATS4ENYyjhe?pJpdJnfniE;pe066K!i=E*k zb#9ocUn}7G$BBY0a_+b9D=X72T?(rzhN}YXB9gAa9t10d8AP3#;z7G z<~Dn0sAl5auw0c3%6)Tr#Cfkj$NA`B_b);U9Ca-j{K~EOs!9HZbwPWow=d)kO;vV% zXy1@~4p$L?RXY`AWxRdt3q?#QKRT)c(aOup;cUW*RCu5e579133CN+zNqNC%AV#W! zuZVPt)B(ph49F~Gm2a|nafAL$Wkp3Zpg{{9zc!!iO2Sego9vLi0|POttW6JjN%Qj$ z4kl;kd(zbmzZX*1_(;BxF*3{I@cRl%&>e{Ia1SH--EWNY={S1(NA%@Q7HE!a1&!}Di5yJGOEby-2a5zJoNFK<BYfaDCa9*CvS7A=s4&4($6^Ky@46+xPzIQS?S=L(GqjDwmIV!6 zquWwaOpq9aqt!~>vM+=FDxz)fGApZbuXb~jz)Mx(NSyc*_fdAlhFcbB9QLfAP{3Yn z71n}6tYeq<+<80Idb5?rot=Ekk8bu2va96qNf3!&vs zWw*S%pu130a9mMi4q44NvNn}G!Th2k`_cOsGO8p#0Oft~$!sx@H<@pjMMWi#c@gL% zkER1NE33L~K_y^rNqkuKC7?1nwv;8qL(WVmI-g8bTIOHXd-y(PV=ov8Bk--I3I-z* zH|}>r-xFtc#1Zd`L3tc}8{HVZlX&IP_y8VJG49}tub#jUPrs1y*mFE+`~5rLvWlQr z)NDaPL1^4@c7MG-88tm6vjPwED8>)9NRxE?+n^TzXQbrH~h7ek(Yl(Xn_M@msfI4XYgUn&h^`v(EAI zw|TYK@{F^_52CcXl6+T3S_KA!ogGO>+69YCaqhz!C+sR=H8PG~3eVw>H4+z68D-)L%bEP7JtBULKX7+Al`HzSY1B*%S zS@Y`>Su6=;BM+>kOhB&N<}(8HWJE~6dn&%#KtDOja)vYXQ4K<8wBbBVC|1EPez=zN z&}%VEGbsVRFUu^M>6tR~@e$v4NBqrF^atbCS^5FVI!2s22znN`dnP9v=ErIKbTty; z+6iS(1zk>_GpHrLix{f*xSO)3t&&s(dnBZH%smAqks!j$Vs!&zhU>hm%Xvhc^juE_ znT48UxEK2Mbto>xbe~!BKH!#6LZw=2A08e;shA?sI;Ui`Bh@gY{PmIPw-jzPS-noL z42yw#OM?zo%fpj9G|3$`Y8mTHow1uU419Z+6Erg&BONcQ!&F++NJGI zbFoyl-sjJHPna-0&&U~wwB|q`?5yUF8eE3qlKAu58-K=F=Ola0_IJ$mvtsgU5)%oj zmGw@e#dF;$;aL_o=*O+iQuZnjjC6x%;_g|Dx+lUFwe{k(fGEy$<&HVQ0;FS0W#Z%wRtwGPmLd_tX%&vz3vW7Mbz@J zMhNql2CNm5_YS+6-V^EV4q{PFLLxypG&E=2glFgHY-gWc1A3u1t!A2d33n$qDnS7I z{x?VWf{BaG?B`+Xtg_@dfZ^P|GkqX~21%*f$FvcU;8*{A|LL#N_^8F5F)Yf0b1pt7 zDpM_U)4ojK^6jXl(_1na3R2#zYeg-UT8mMMSWo;uYO#uscTBe^Y+tu18EsQ6U1(>k zA9-IzfqISd^4e&}^Wvp}jB+YlkP)-oe*N(i3OKB0Lb!agA){`xRy>A?H$Xnaf~t_V zlpw|F)60%b!N(mB2&EaI$gus91{O;P+}T=uX&eKa_NSs`_)Y8T#hSrF^#f0V9*CLf zePAshlXd?(*>{yr8Q}!(m156 z+07avgX1gq(5%Ragilg#3^lj#peiaNtt?U&e-A#tvZB6%hnD>Ae?ipMYNr3v0Lb>W zhk6Wc9wp2+bAekXPv(0^My|-p%JS>P5SLO7g@H)$O^c z^$Vk_TZLYh`hhs;A)}f}$4hFhl2He=2(ZUh$T%u8Cm({E&gy)6cr%obLutYOzJ>2| zqY9fqfSXWW;F0cKTwJU~VQ4v20xAvjpdds}K`k_FIRKOeB%K-sH$|rIV-Q%3W0y8{ zk}D{+K(^l4Jq8E^7f>kH|E3qpGQg{#_^b#DOrV;f-N=3k#&MPmYd%k~M+Al2>0e3I ziyq|I9VoRhJBa;}jV%OKA3Nim8J!qRfiW|C!^{>y+NQiX5#g$ZKV6YH(KFK=mM+Vj z!yqjJTj^Rp3Ic{h8W&*qI#`9$a;>`Xt*xzL5MO5=pGLt!;oYDh^47pviR;&2-~3#w z1E9~*$;q5nm!Z!k&LRL|2eKklP&15?I5adgv^zcer<%378FR3=0(K8V%|z>g&P|sO zgVY_cM`0(C?LRY%bhvF4K{hFJBG-lD*8v7Di|ZXFN!PP5>=0hk!rBAb12N zMo|HA7G~yl^B{THH27fh!%&kNw&R73Cg;~q_due$Bhmh}&XGSk9&YSJX#RxD69AT* z%+Olr>hSAhrxY?GjDpRXBXa%HSd+uXe2;c!Y^V0wM0iI(NQ^%lWio|?hBg%);EFD7 zO1GOI7XJG6D@{s@tJlpgXna#LR4SIXb#rU08GJ%TD{;>wuk8C+Ejr`0ckOWh^Z0!N zIG3&WwB{nPbo@qZ{J29RNGrz{2UKEpC5Xwz#os}_5|9M+8Exb%5H;ZYlBcjv90ZpX z)GT~b7jsU6z^oYHL`g!fp$4ePc&Ds@&eq@G3-HL%`-ATGPj^-mgTdlU18Yb8Ta%#M z1A5}1r7L{Y2c$K>&_sc{iJ_7(F8}O17%ccAPXzt|!C=gdYBM$d1W}UZ7NeGZ{rdHb z01)$n9zDltU#^VicXp}MDBWn&^n9YMeHT=gp;D1c+~XTX6tGxk9~Q|v=LM^StUksm z`C2KOW3y$|5B07dT@E1E7q_K+*%&&ms4^(6cWc_1Ogn}<>pi`6xy`d@&s6$)f*vpT zHw3IDFd3+)BKV)X8>hrp zf;%A~>Q3f9N_aR6{0aRyVx|hK2-*%!e#n@EWD4&L+E%e5 zXu;Oun4OOJ;8l`;3*oRRr0MwfVRM-n)yidDZ=KeUvw>}Ht}hdO@Su7sV0Y6WVv#9m zWGStv8j66TFZ4f8!Ie12IUTqYn;fXg^7uM{yts{C>o4S@P*M)aZ9ppj&Q;m2*Rkcq zXBN=N!NsT%930lx%FM{HyP@hDBDTH?fwe~}gry;v z;Bri~aiwW)m+QH-R;o=`nb%lv32w+{) z(cwM;v+EuE0mpiTkq-MnBK#sa5>YSSPHjq27BVMSW1ASEZj z5z5=nzn|4^*O5Y@a2q{QHvF94d*(sZ-Nzy(@7Y8~jGdlmoJ6WiNI*?v=LKAE&9XN$ z?yCDDiKJOulNnY0EH)RQ2te(05Oq}7)BuQP#X9kW?he#7Vgc2P9+VJv~k$;sNu>9ra337M-1^_4H9Aj5>p&!D6j+hp-Q zi|2r4)a-IBp!i#Vr3)OVR08O4b@lu3@NlQXXRx77Z~kDfH~?c%WdURY&7c63R#PJ# zIcNXu83$ln)aZINCT=Mjd9IA%hPe18kiLfiAATQd`d~0E;9Mtiq#SL2y}kB6scBE-cfXy@8j{GGTx^{D6}GT$ zYU+tv4?Ps>;HYk!!6^)M5La85EEw4?(*)LO%(BBmZR?a4w<7z1X9edad%z!%0!m85 zj0_E9H~d3#z6f*L)u&`m7=e7&d{rtQ-r4Y^K{TrtvA$e3cI-Zt!?)Y;_qTp{)eL+x zQf`||p4)9dG`!83cCBuXE3!ood?~=2IgttXklX-=VpPe*f#4&+ZS6cg6}FEHkTN2A-MU z=C}uU$zcrLnbbnKj_Y<>X6XucCs68o#*3(}t<#Cppm(lNezCQfk5Snq1#NV>@-r0K zt!x>0cCN-YH}fP}TYnGYR)x;j;Jg*WP8lcGvb@t1(U7i)&WUSRr|r|pszqh|`3`_= z1~NE=nA^D&telyVQ`QFA21q}@T8@Mmk zBn2J*c*J@V*Oi)FLd@wvelJtLQU7bYMgqoa|Unz{YVkb4y2Cf3cfsdxUYvXKQ7EyP?|LMQf&WMRz=NeT zp}Zvm!3K1C30EAh<+$GCL5pgj=we>$tY(jXx6z|-w`fP^XDh>msmvlU%gK#iv!$i1mfWN z%NFn6m9$ue=Did*5Xv174*2`0@fnBmsTp(&T!`T`l5#qkJ!`Pa%5My(5cc=|)_Jhb z9k32!_H#)%7tO;a(-P}*Vu63(;ICYPvrE=^GoH64~`Xtli4hrK*;E@!NBOAke(LsI^S@Tuz&TrdS0 zSIw>W&p+J25^~YXtgxS*KV)3rY-^7MNwEY@nJ}6P%18dQiF1ItcT}6#TXYf=PU@Jk z_%`dB-fwPI5A{o8K;@rx_P){W^NWU9SBw>>7is|I zdi)A8U{gLLO9E^8aXn^vov$2c#%k4>Nl#*ZsIrrXy?*3$wa~EcUjn*tZu$&RtK}#{ zF76Vuo-j9OM(J0)eL>z=QvYai!8Q3>s!Z+!foktx4=zROpa=e8Mr6HML>{tD@lxAc zcelAa;mTm?;@&DNF&h3*z_k))Ep{VXoO%}b!>lJw6Vd-rDR7b;E5I1sfn&2r-~Rm7 zj!`?*fsa+sxXpj{ts&39roQt!=Uz;^(dXm;f8K+^84}xB;@moaHTE>ZU z)4CO-4m$tn3a7UZLZ_WoZ+u|*Oje9mhu~vtM9e>{=F)*xW2FmmE4jGo@Vr5)+_(SS z2?_8)!~`k5jEp7PZ#e1;vFPb||C{cX>7JX;)&3*GaR=P%f17R)+J&kbe^_22ZHvx7 zdiJW|a;r`%-kiD;=8u*a@!M|}wAg+7vdmtUJV%+0fz*T}o>Z0-KKU?!* zMe1CY3_L1>+nTgp-NZyN{|NzCau?!j~umMN;#dTUwOj6ch!2yVil^ z>+R4|=TT8FDUv)Hre}2g>T=1J>ZrzYld@cpm4%bt{ogp_JcC%2I&!>%fL_h)N2<)Rn2SHJi@L|2~K(koC^eO3sNTiqe-v% zeP~(qc+ynAuM+}7_#wIa1jPP&dtP)nxfNZV^YsMtRzgEa-K;3#)B%Is1JTncl3L$# zGFR?(z%%WC;rQ-??q5JLv@I{U(!}_Wa^=N|n&@tNDt=<)wV5y4WtFjVRp=WUv9tPy zR-=1nAmc`yVmvYaegm6Xq^3A(c2~;>IMda6*^zP&yULGNf3!?dvCNRgfG3wtbQEpP z);wc%3;ubiY*>~8M)D}WWcqOL!q z1eETU&P{hpw^9Ovf^>Ix3JTKQCDIL2=ia>j-}%n(+Af#1pF3u*nYkt&EtZ9{BCLPv zZz-@`Yv1iweH9v3p8l+B`WUOtVW(sAY;Ud6d1nNooQ9)Mg3Z|Rstk5BwwN?)j@e2>5e#V4lTtE-0JI7Mkgn?cjNQr_M|!W3_KzwP|~ z{r2o))sZOh6%35y{jKNwZezVRAL77QUzobofvf}mX|I2H{g{CS9vu!ADXg2{|6Z7m zo}NQgG&Uk4f>X^WYe-%D!T#vlr}$oQ*mboFes+B*<%LCiCOtiUbyjiigW@-t5uFFj zQQDG$C-Wwk8P`-TFe}zxyrjbruv9;Gu+&Clz5mg+E&z8bLx9_sN~xeu84B^gPVra1 zYXb{hTwE+#s?N=YZ@=n&q1H-YaTVk5?q1JCm9l&oHnJTIKGVDUOO*1Y zidoZko6YqcVH8zfRZb}oPn<9y<`GgGFOOFmikzSlZjFNy!Y(Wv4H&!vFT?U_)RduI zYx)$8^>*+io1*dEa}axx`nCH{QjJ*~fZsxM@!;r*h>1HpIsy)aB00(ZUxUSfWfFly zN%OrGroe>KFW?)EoSbl=3nn4anQUe9B&!AI1(?mE2hR!;K(V52$ku08mh2<4c~vwJ ztts#I<^;fBQHsQH>>%`w@i{V+W9w5Ws~b~lihYP+_z+RBN7ApJvsrcuV{@12U}b=x_!C|;_ft;gru$=7xV7C)m3ACMCa8CpBuwBZ{qUA^r$G} z5c}hv$$*wcK<&BQR5H~c9M}W;G4b44?44R%db(uFm!|zZI@@~g)te(@fM8mG`v}u@ z9m3gS3f3SL;J+`H zHI3M{oT5tt@3*$p!ktVxcbqexYfL5NBmJ8qzY##`7q~U}YHFr1U20pqxYTTnD1&1_ zKtxo3srgz_DIXVH4lsSc7M%i5w@11UFHMb%UJ;6=j_*t;vSx#<_>PGrPs#^)3Q1~P zcJ=ATg-^X$FSPtf{cY~z_>Fx@Msx%#XD29|xU(ZWUzLeJH!+r#yAI4i+el>OF4IvR z%7VpKc7>K3kgyZ&+KWBY{$B>jP-V8wZ{u#FhKjg4}X!n3zuG1c|%;g`l z=qyPKebU;fcU3=tS~38&1#?y$b#tSmm3fs$StI#>1?*NG8@}zwNTaWFa(*RaJp>G4 zWSd3|)&QgNdv>K4Vw~8F)r%9+hq{6guor~VkrjagUXO1*dA&w+1G`8 zreVDRkV1fmqt;qO_8AvH2n}$=c>HFdQQFAGMeY1_^w#esxK7RUIvtmObPNn?JQPN+ zvP_x3@~h`wqx18+W2t4Ceey$QtcJzX*^^TywVtg85}$kJCaE%%!r3~pfQ1z{{fm;> zsR@J1PPf?6dxrO@iKX}0#FEl|z%*>IIUBiWK(V99z>EAVu9>B!?D;FU>g#GXAmc@0 z2p>OwjO>;N8`mZr-Pm{z#(A)Fa#A-RI5n=EUawrY+D_2Jnb4jJ1V>421gZd=LGJ4M&!1DyRThlZ{_*`Iy*g%) z1{Vq_nJ=|QCuGwb*p+480ti~*rrcxe5rnpyr z8((Aa8lr>p2(@CASRI=~DVjcQLz{zcd!SV43xHC9WZ(nRHNYQOM5YORGv*|Uh6!)h14g<5O z?!TC1p!x#TAcAbM;Rz;uBEqJm*Rj$ck~W7$s;213#GTBWvTKL}RZ!H9?(C?B+lX?m z38jUR3TNy)YNqBsGmJrqUQ&UV`rwszS#5L)Y!ta0V8B3+1=yKExhBNU8qoy&L8Opf z4L@I5q8UmfkndvZcvLu8kmeZPEwXlS2m?^-J71=(priy)&QUA<>10@F=+wg3*YDsg zRI)hZnS;&wfs;h+&6@rM#&n0YA+;?89Eu*A7=B1#Mj-1(bg{h~|F1{302)B3Ei$>@ zD#SR1PhtcH^p^3_b|!)YxO2{NNeBi$3wYdJ?KCHK(^LRJL!;shQ4zx~-HK*|(@+JKCIgqs3JQP|YGT68Gr!saZ|j(%o!)|5&t$+VHZjDFc``;AhB8 zPOHz6BeG<==I1%`m&gZvbJI+vXp+eCzrQxC|49IRiKE-o5gWBplX`<%hRsVUMu6(j zqN_*|oB#%zXgC9{b1T(rM;wGaPrj`kG~~`xOs=^I@{nS3S7{phx=wx$2Ej;C7Nj5`f*DOq}47I^lv_qdOb1$wRL7e?n)M-1zGPv!j7B%s5U4cmocZ3?DLv$D~ zZ*LymqZJoHP$L@r^()onh}rY8kM$}~ZuS2}f*p71jp828cdq zYZuYc0cKD@HL+A-zY@5)x-N;O;I1ZLnL0XFe1j)MvpgK<%n*jG^`sqsofL4g(QY%A z{Q4FN*y^+pr;as`Ghiiy0t27KR;u)RiCniIIh`zfaL1JP5il;JF4@3#LNtSIa;6FTty1l$T8Bd3$#Xg6n6mqYWg*fD;GgDF6b97V@Kg~)= zgW%L*!r*@PTN$_=g>7oIn!x|PV3BK$rNB+H29cbw>9I+Q84X!Q1Y3T#p5n+_EuPSN zK~<&1u#rJBZ$iYRVQ&TQ)dRZH7iaI&>GZ2~T01tDWb!EDsa^4X}?WQ|Y=Q*&Bo zZ{>s#5)E4u9{_|AZhlGMSx0B!qnN7;++lv^i?nuuxN2)`_!yo z15{V4Hy?tq|4+Ixn46|)sD7u{UW3>69OWX|9X5l7a#V?-2dkpMgE6*~a}m z@(>1&;424*a;9xm9IH-b(hHroXmAYN>DE#ys>jsf>-~lP#zZpe!2m!3#mGCqZ|Ter zC_(73`2aub&=cYDz4^79;EbU~vTTLST<53oQ`lud=2b zt!U}q{Sp~wq$&8QKn4fYp|vMBcSTv`^~nePtkP%EUZTkaH1D$sF0Nsq+(1E){Hk3o_Xma9?Q6l`EX z(Q^EakEnVxv?@TYIYlShix+%-q_x|?&hdItf7%2T{y{ha{4z`4F_I`-PVKi7o#V1Nj(^=$xXSSHqMh*w@eA#!XKe2QRV#iV7Oum|0%`bk0R^ z3TPT42Oga;ldGp;gQM}!9D5yG82zS}potvy?NuFEi&E<`-Ts-54j3Rj9D;&H-|vJ3 z1%aEz-N>g*m9B`n0>7(tYxmR7r@tyGT?O8gktfvsTQSf~oFD-D8wgJSTvkiQoLHPl z0GZ!(+@sUHv`$58_?riJ&q>(yeleBscFh`jEesd;4>w0dAOqXB2F%UG#=SM0 z7ZsB^pnU$?`Q3W{Cjul+?Te*t9v)Y|El`wU()-`8zf zoz1qz?wi;Db}CvT-eI~IbX9gCmK28!6+PLo*Ytfvw>O_vpz@bnbBj=~h4^WDmsMcT zu~9EwIvBJt|5ppZJT*5q_JI(=qjkv^QHK)iZSDF7uykqmdMrsKix6Tc9ELrih@)>7 zQ;8$jlKxiDp#)PDW4P@k_!+7bZ{Ca)$ynd{fn4EV;MoQpA48(!;);27$|t95rgtZO zBH+|9>1{pwn&7>EmRj;oMzV#qIZ8K0zEo&)z+w+XRH; zut3|C*+krCh`#^&70(9S2&|9#As;x5@89JVVV~uXM}Yd19DpeFZ!*EqsDZTRL{2e< zt&%43#Y7#J;sQyp!#;4Fk-_&1m$|=gw$8mkd{Vtw_8<8J%IjqK$qd|>%fJ?w52yDT zSd|}DsLrH(6MHoG?Gw%MYW`$l8gQD6MwI!^je%s{4P#Jh$w^(6GGB_43mAVuov0IX zC0c{?`xpb|P5Aw88~$8Ep>39JP$6Y(V`HQ0iLANH?55M#)>d+gI2mQjRAg;=WyN+r zCS^*j0a6-uPK`gnq=TD?`a%u^q6<|cd#X)9TJ19aS<%5O>*D!b?K>me*DRA41mdZci-DDub zKIwL;QB+d0#;H@?G{Le!!+w6WK7rKDpG~$h0-GLg&|c`4;7CgcfTg>NDf60k>UG5uNSdFZKJU`A`Kv|7;TWSF~WvOU@_3qiFp%s6)&@uyTIsf0iJNO zb%f-Hj3^A$Bv2JR*>aN<9U+zhX-)LPJe1XxN)h{J1Kq*pEq`orawwG6m94c)m~hfH zX24_G^?b7lX8T!NS|Wi+GIaiLLmEWAw97ijcTZy%po@5L`DUN_q-g&eJAg0v9CS*5 zoYHL3*3kCOCp^KrQP|_hzXGuQ_RZ%h`cr{TsEgM7yS7=HStrgP7<4PIhiE7FepYY> zzZMtm3aU%bCaCharoUu9J%7spm38Ct7i$VKJizjN0j+m?#zH$Ow!?sXr^i&*3TyM)NqfubhBPY#Veq0JVuF9ctCfA8nBtGnC<{ILqb zL>)z$#LVt8v{uAF>+9SWAs<+6W+k)aH0VTOC%lGx3|Spi{JopUwEXIg9D+yc<*SFv%))fy|Nz& zQx3knx?M7ODb;B(eMo^B*kJ737r;P**qLG8hOPeB6Rn#ulv+RygHDy$TRi=syLkC)KUjjS@Ru|M<0>xLp(CJ!b2kb4IVOz%C!z6o`3S!m>eG{A% z9UUETfS+cKgaLyO4UWdARh`U@_{j)Pwhj5o`T)ZKWqg6>*}OdTd}`gCFSGvomu(Tg zK1%86A^A)jot;^mhI*2bpHumYC*ENPK1{pu z-h=ynadUI>Er#cR{YCGI4q1q`OAB2)cl>@w$>jPPaNh{>l-}=3{M=@{xyQd1VY#~8 zAKNZJviNalVXY^_;d!34?R*urC1V!%OwK*|sOfJdJ5JZc;eZ5ujt`B}24IKA#$X@m z-=zIP7s1cPD6O19^eZAErb*zKI_Pjh4i})m5r~5`_FO; z@wDPeF2!=j17gYbGSASxu8rM8*{p3@|7B^MY4dd_&VhuND_}5|HeOOi_j3JGzrJ)I zEr03j^YR1R>J9eK_7_a%=*w{>v?FhC^`xG?jCmP0lrWjEPresFo=}rGxLh_j@w|Y< z^f7N2k%&w^*ch06##)`AwK3f@#<4YNyGpAfQC&!|T>Tp0I6Y75iE<$Lb zZYTJWz`tDShd-jlcbd^a4Ys84NA*^(DOz_&_TsPV)(g|-??h3z&~Nw;64f}sIlY2< z%O9SFem`B82W1ew+Y(5KFJ)qKD0phg^dEOK)-}ya;j`TIdAkSyIMW5!;@cYzxqX5Zq?M1E_hUQ~O?U!{#w#Br^I~+KU41Rh zX_)Gymz9sDD>}vIs;mYT*B(lGPgHl1hGnOZV$T@!l3ltt=gj<&e$w4NQ+1L43-=;- z30EIMx!0I7|LHOObpuoLy8L>L&asC+Iot40{99MXPaWcx2&i9)wXFBFwyh-R0Cqczxc6QC<&oqB#ljMbMgW8H8UxwW5ylB~JHB|JD zRsKu^NQROFa8W;(6GWC4p#=$9$&(=WzK&R0dL?GV42F)Z>>FX33Rn!8eWOLLJQC^Y zx-_brs~DaP0PB*`ffg0W@(Yp8gqM0?l@_;!^^ygH4|%n0{!dw1ww@2@vU0i4VygKw z=Q@ukXhr3gdq-5CWXSn8{qg?osdsMeMbP@)Uz+GRDN8}JxNAe^3((p5vO$Qt>z=)B z&q1H``;T%h<*Gt!+97i|cA3)X#TV_lmwjhBOGNOS1Q|w8hbR+yhg>`G4 zlrk5!eQA9Q@wlZlc)d`I>^1r8#hy1R&sdwkeZ`TC?}$^)L0b2f%(9qe>flFF^m=Wl&T&Bd;6hW$CRehbLilOHt{nwIz3;GOPBL z*9eu@M0b?3jKJ;cn8?ipwQki|>Jn{@LbMA#qZ>b?J1JaChb;OvbfJ?w zVl^f-b)B(YqwdJpT#BlIPm>hl@Yo1K*R2F#L#p^u{agnR-i-PwHvQU+vdoc z30UTJ=s~T+;8&Ow$rMb=><0(9rtl~2x60t3{_o1bpEB!tr4%2M@mS|FNA_1_qFTkS zVjl8toKCp%d*DN?Kl4>aTGMlqdTGb)r}S&9-r@e0NZEbLh|SfRQIwB&TPfI3i9Np} zzWS_hx+^w+G~({}`=>T91$&RB!ahHXGlqLcfVO3u%-)hr+!Byq{I{f`R|;Kos-{4U zu{EZxE#of_TVB3oikO-@(Eu_|)IhyI1+*eV9Og*SuX?Xsmz=T0y&oHW3Pwv0uF~-k zgWzB>&{dyxFII4Ze|J#%5sr!D$uWc@KT8Gk!^{NtJHovw!s)^PfV`z-jF!(%cT>yw z;|nJJXjpezYny>DCH(Qn37G~4_@Rrm`Y~+D_+L^mf1UnJd&vBi1c9=8SYQSWsDx6H z_mc(h4#3^UF?S>##m};EP%wYmnEL_sRF>@rRJA~j$5bOp15yz57+@IYGn#O99pRP( zge;VUH86|`fiM~L=~me{?xvO%y;YLLs-KXuA~EE1z&n{Ec945WHzrG<1h^6|1z`M< z*l0a@=o&9pUQj!0k=dOx_BEyHGdD-M_tN=*g*ie+kr|xZcP}-qCqgKO1u#yXiZ)%f z-UJuJIAzTY-P&3T*P!be*e8ViGUca!Klf5cvj@h_kb!DrIK~<$$jF2sI05T%QTRUgOcdQd z!r|Aml(qm*$X)f|#Gu+kt1*}HN18l#MQ*PrnNyQ)JAmAmKZ9^EW=%pkkhN=9HQgYn zA(~@{E)$=-&g;>-_~~Cv(`Mfg4J2s`dtv_HDoPiM@l+X=QD^sT;*K@yaDXcqUcw&! z_81Ot-mLHaK%*{H>#TqMBP<~mv)i_|vu-KE_59x|B5D>gijou0O z>ef~xiS#FRu~M+5$zHzE?{jC}yz^>E%QUkfOTb`{XRh`*E89CR>yzd$z2y#fBALb$ zDJRfyp>F>Ok2S`z5rW^q0&oo^Lm#ZY_nnDHiWMrWS;W^v>{Ido#sD7H+c3anA3C&Ve zTHE`fFq$y6A&&Pwgh65Jg|yCR*NQUT_M*#Rs1)}6>IRFk?e3n5VC4^Ep0&y6z$w*gM^omJA{xN7t={Hj^a1Egrl`kD!&UrHWhWM$= z3UCy1w~sBpUvkhXhO^~9HyzvN2en9`9LVN^1O)FYC;nAjv9dDI2iqF7=_eUyXvwDt z2#24~L{9pax$*IuxSP^+eSf}$fsmpPM@9QFH47P*OKirPeD=T79}D}jH4!tTb0$E| zmtU6j)Qzl*?Uu(csnv~q{EBvX-O2@}#MV=F$Mg2NE3$>kv}8(^^$Xeu{0i}pZ`p$2 zVrlP*0Y_4_oF1+b7pV71_B%gLWyRjyV*w<0WO^h>jQ7*n_=)6Crs=~SL!N&iw_prl_6fY7-i=ygLvs~d{x(Yj3& zX>$x^U_HobecYfO%`I5V-Dsz_m0KZ>(yaAX%B8u2ocOax(~MCeIGN!X#=mg3{8yJ7 zDh*LRc79E)sh<7Mz`-~m277pWkq~Zgp@{Oa%7y=2l(IcwW8rZtDK6foMgmfq&FPIN z6cwA_q#PzOQ(FA9(8d++%^K#h^u@8Ti3fT9F>D)aSpk{<$ENr7A2hL~#a$SSyhL1| z5RQ*uN$fh5dX9Dz@8Gs%wsdf)Q-21Td%8-b6oKDTSju|ht6Ymt`<>E?d=#wUOfJs2 z!RrLe$pNSak(&!dDwyp}VX2udxxsP?)Tqs_`ccjNoKA9)|Q zmMNzX3{nbvQY=!b#A_fMSLMf6AYD;r{d5;`$LiMg4_^ZVqfmBOI4FeHM1U5jN~*cp z8Gfwf#aI6@-jH|I_}OfZp|;b$KS43w5!fs!WX*meZoy?~!)KzvprXL&w5>Il(P@0d zXjy$%M?&Ej_Ah<--!I}5_ORAI`%Kj7fYoy+7ds6hd9jN5zGeBDtXNCtEsSPvb3ozV z3qv;$4t$(&ID-C6yjF%L8`ksaxYJSIX#2)z_T7x(4a;V&XuyXhNhZAy)FTEZFJ>5z zq>AQ&;gVOri{80dNxu@ejhtFR(bV)eD2h^{j)7$uIdyvRp-DlCGy%mkUTMx^9L4;8{J<90#y8gM;}wqnJQL*H@Bu3A0DRK?$v{+8y3vncT_L6jRP4uc zI1|j9&}l7z`oOY=Zykgph)u>1m|@s}>hl%gNfY_4A>US%qJw}Y>QSo0BvR9_$eeNc zu+p2uYMwuV`LTP@b+OVu1YUMoQIaJVbK~FrE{dQDT4=01`CWw1o|#vDVhte|oYTZs zbU|C7JCE;AuEO0bhf4of$j8N{)aGx}??x81Ul?SDHPcZt@M z`cEvyek3Qqx(lNaKjmB>DfA#a<*J8VR=?qR>5ZEF*QVFOR=!iiU;i!$>eizTB#l4W z>Ys*Fr%rx)(Skksx*^bTt>sVoc_3cT<=WxeW{>Cl@uXUjq;Lkpk5uTnxp-@+CraNI zhg^6Q>Y_n9@5h)F*5Sy{)%_hSAis=)W7dVA1HZGddcXO|it>>)(nTf9_&Ico0yC=t z6EkBHzNn8Qj zTMNXQ>t-=23yG4rl2Q~=@^GPZA!Y>YQ<}JmXf`ASdRXt^FlHcdZwAYNf~pd!o?Vc= zp`~t$tF|JEkTQQ4Cs4+ul*{VOFzKmaN-@~9xJ7UCE)Mq;`}r0P`=_4;5JBVe@~}_3 zP_ZiL%B6hieVNwv>_8(JDAqsSs%uzTbaUwabGaXDUk6vk*g?iiwb*xAO8WbU#(k6XHe8!!j~R z&-vf$SJ|XEKBc*0zq!g%$yybvtcTF$?uD&`FekLyf@I*oR)P1RQ{YZtINO-kps+_eTR#NCvJqRu?&V&QCF}B=R5}uxm{D~oxP>=BK9S*Ad zp~*oXx@2A+7G~JA8Xr*E1WT#`e}-#pd!!=C_ShBDs{YgP)rSvDx75)z)Y+Tt@v5`p z!<=EDlAlZyUvkG>9cCs@V;=?k9UdS43+I`31@|xG*1ckJi2jYfLiZ*&Zo->x-Nu!8 zzJ4Zt6sMi@4eobbl7~Mi@#6@6*`UuekaB9;NM_^sA~k=+e$h?etYP{oc(P<~fQUNV zy6=^e8K86w7eJ@A%noO;j@D=dom~|6tEl}dI}Aj>iK)<4`pgc@`MC<4PvwWeT>biq z{N7%Pl9#Xl(V)L0s&~F;^~BJ`>S^tIQ)UuYA>`00QM#Y}#X3AZ8YH+Q*G8NF72pMd zf(=;aB7P0HgLXij*-^M-2j4EUyiOtbMUA)zVi~jPA9>HGv=5Pr!ovrMhz1HRjScQo zh5`S<@7d9c1)f#VV}>E${PamlqY!&F(i#-nKHAM6O`yD1SX*VMRvk}mJ{BM_KNOc| zA}xk;ZcOzHY>fc0Q^j5E>FbP`dB2y6Ah}{ulKQ z{oi9TZZrF<_o%}+x?s10-PzsO>A)}l1)VNbp|S=H?kJ|=lyrHN1B8AS6>z+M;UVvB6aR{qGjoTm#Q?W@8`rgBcM4hcC zyrKYK2wGp>`_x{x;SY~e+a;QQ3d{tz?a4rj{#z1vL8}}h<SBt!|dACgCdtWkyfy-j#puMb)T+^L6Wwc-%Vw z@8cDyR7CC1A1BW1yL_8`r`UbIIqzvq2BS4KlAU*q>ox>cr9AsJns1bbZ;ud`K=!B2 z4#ZTLS$k=VPJ|lHH3Pa>*y{8MPE1(w>u*&M z{L`u|HJKc`)J$*jM3|ISfAve* z)tItg8dYGsf8S=UvyA$;@29{iYFP$~>BUIt?v{t#j0nU9LpbQyQmcyfNMOe>0Wv$= zx*Ff$R^%Sd`zUqqFJm-SxOY&|Sp9Z|;l&JGL{71!q@fXIJ@9t*ztLXLYBZCQz^SV) zMpylK#hi3?pMq1>XMR$@Nk^?L8O)X1?1qc#en5@C{l*j=l%?xMR~#P%mW?0S@vYBs z7bHrkMGDIc1^rZeAM~p~(Nt((NvKj&BRJV$MGgAnT>R^pO8b-N@~Jaet32Hd!CEk8 zH!@Qbwb&TEGEclOub}vMc`jguy{X>6Y!5lwuE)ZZicfydBM*8evzZ*R5ZMD#R)cUm z)~+oZsm5s+It28vl`{{>yVx424CiW>NZx<%@s9%q;ii=J@>Yx?TEh)YDFWfjgPg&i z3tAG^UZ*my-tj3BX%F_z;F4x_Kq2E^0`sfqCoVG8W63%jHj)f6>g>IBX<+jwclv+# zGV^D;-&whAg(x_z=(Bk+tj%VOs#i09hsXT(n(mu17p)N&ZN)H|RH;Cajx*fukI_9> zTn*9nG+E?2=Ta3Grsax_3N1j^smRkOEu|2bNHZQj9Ij!bGb@i+^Y+>Q#~+f-)*%0L zYg=&92z;A87=k<)V5=ul(u)ar%5+j^SE00l;qQLPEd>VN-MK~Ovlnamv;CjoF&h`1 z;h-c&a6fw_X7%)5a&vgTo~)c+xXfCrBIAq#WFmE~BJBe^P3;NklXxR(YC8$=VX>1T zp^IV8mG8l5R3F@rUFSsPkQcD{Av=VY7)klnqj`_U@hi_ZeWO?HR7|DNpFc-Ab-ZZ% z3lY!2q=)Km<+J_VcQ}=^0`EneLk1+VzBBk&DT1K>=bx1>!<8hnZhj+Ay(N&d1`bnR*`P<0T)IQ-4k(oA$2d{Ye`UFcg08M4m72^t6UVmF#@WyMS-mlwBqgB5H#V;*oal zw0*Z4*6~1zxxyYZgk1g@8>k2~3!*#uWom%&B4il19jhIfI=ax*3!oo}(iwf+!H~5|?-(o?oBfGez$1g_+S#a#2v}`tk+ip%FsXeaaMcg#%zx{6RbkKbyuiu5 zz9KXXDb(_l(WAzZ;w0&AdNG;P*Zb=;fJYU(5JLYz%?j+y56c%=ZpLu!3BDii1(nu$ zeBS)TVeZ2gj(FKaI@?bttL4xfBinKoCo(E;o5!D#{HsbVgVYrSyx09xd|d3X2LVN6F3DQ}#~+J8!_<%hh#7J;Icx zZ=5(Pg_3bJDg}zA6qE`sDgI?1+hHC-nOTIdMXZjK&KP^XHBhylBUA~0v&!6n%;~oj2Fkbz$&yL%-H$JUANFO5}hO=ucKdlv1|HvM8s<$Mn$4@`PiCuyB(M=jX z0RfLFSs&_^+tPF`vK9YN;}Wi8AL~KT5h)2=r`v{LiaL#`xAKmr!0P5Q*nJ9a>P*r& zt9o3N-`r^6vj6X|ErzdqanUw`0}%;I+d$0%p?;_d7zx$^Ewt)xh=v*r4+@T3|JO|& zzeRzA$-BL7#!Fi{+y#$WBX}9ypgp5-95gZ;smLGu0G19_1FTf{@340N$$ls@XKUVM+rH{QD2Dl@y9I@WyHBaOX$SLSKdFpBt4+4w7 z>D;Kt4_Si)wboK8*|K!e#pUIi`PYZ8DTQ}d3IuR_P%h9}%Dsjf(!m6II& zq{!I7;*O69(RrZ@>4+sfvfJx4t=gsgrtFXz9AQIYiHzVx8!olUx(z6l)s2hZs^SSV z1bL{}jkko6W`oH~vUN8NMkzy+sYCtG`nNJz2cy0&*o8WQ`)YXB2TH5J{4YHh0p>C4 z=phE~$ZG_@+`qeOkpP-&`sAK z*>Ush)(Jvgeg@n=XwOD@`5Ul^6R*~^5J-oKJ0O`DoBtzpZBD$Tw*y4Vi+=$x*M4)> zTWw~Ha@d}!1#LJ+P&n$&gIH#eqK8$TA+eaFH$|UYY!Wmsh*ttvAor&D133XIVADZZ zqU0rDq3}F+y$I8!l__0zNbHc*^s|Od=UX;x?T#+n`!r{$o3V241**xBK|?U8t){|L zx#;Fm29<@NhL9U|ozuUs^CjTOdRaDrIrVLs(zR$<34AAyyk^jSxiW&>B`FX@ zf7)a|ODjW+wt;8jo*|m(G@PnDti;^QV9(_DaEIXa5L3ayi#xb!Zxr)0G(Pe)Uk~WF zKIdxk^ltC(-wdEFNHV3SM4?qFUl5f{L&dVQo7AJ8rQA-kQ9p!E)^R2eUR}b=B z?SkyS%>KUTG@-q73CLv?^^ZA%GPYemwb}(^vWkWkK+IIx=pDV)V@^Af*0kF~D%t9K zf~MZ4fHiG|Zqh2C=SVEhx_9O4BatGupfZ2t=to#!^@N}TwPp^)Pn7jSWsj7~AZf@% zGi7$<2r<_f=hNJv@HOGYyKfb^ijJnOefWjlmXBrzgw#yU$-vA}ti5Rj(0l?KIJ6sb zFO}7?0nJFYH>|7Wh+=A1-pzo*+5>hk(4=FQhyVdmN%^X`2gzsHA{Kr7=@Misx9`|b z1!zqY=BxTaaGf*PydF&e#zRfSR05C{&cq$;_edrKzIOwtsctzLWS(_=eV9{3-Oc~y zC@2h&c-TG+-zZv{&yG3MKWJGr0xMeZAypC8QODtH=LPXp`e6xC5Af0WonReAoO49W zQ77ypA)OLQz)K4PCjOoH5|i(*b!=ebnaw^07C86SaH|9kkwv#~Tnx~8&Nn71P+@Ch zfkr#*ggQ`_3;`1r_e@*kiXt)AId45!9MtyFTZZ5|#@qYGIXBa-11-P~=Uy}_=`@$goFLZ9-)wvLyn6;3GM)u~Q%*|q|KMc{Q zgkj?GE&+vA-o(#eD^)EzC!N4z0E+7yr07wTL3{qN6WlkHmvl@W`E>sr&-ZMgoNO4~+_{jIVIE-6})1&$FvMSuMo zvZ*;JU@EO+{zVNAxp#=HE_;;y(4W>edJzz$TN$yl@3;*B>`6-YB_P*<8Cx{X6i9Gj zz8PgfQPK`80Lq$`RrD6-0+Ks#lFuH`E&k+8xuv60pbeWx`eXMjhRi0y;<4;CzlRxK z_1%wR&H)BH!(3@j4YY0yf%s9^!kvc~beRRn>j5`V-sgeY%GB0gHcMya6FcA(Z4Jr^ zL2r*|r^eO-e`{>f1*l==jDAWWGYM`4D5vN3*O2!*yZeB!6sd-q(EU0ThIOFQX_Jgf0iBy+) z5kAmx>*qgeh6Ls&foe9`A{}ion0v{xbP4azU%`-S00xp@m6u6gBWYAuIVZ`r)%3b8OQ*2MnVLl@p@Xj-S_Ig;oWamt!O~SqN;lmxzTeE1R+O z@lE;ViZx>{l?`i26Q;Ivvw80G`T!t^9AM(rYLcb_BT*lieGXnjBKu06dH3L8%9khw z0=FD5f?5Sl^Vc1z`LtfesWbS15qYi71lJGMP}OI|a4id4^6MsMpPFT7@Xy2^ zLENW*twFC#xcDMOsaX9j&t&lj!9tB3oaF}{^RIH>`}yI`1V z%St)0iD0;6c?&$_1Q^d<|3qU16o~9~bXVErvxib1AQ#Clql6HctK#gI4i2Z}op7eB zIBJ_~qOHZQw|~J5I~H-t(O4bjJ`G<(Zz(iy?7BYIS_(o$BotP|M{t7w2C@OlvBi-Z z|4RS^7aqfu{4g)|2vTTJ8a=q_WDMpUTZU=#lSzYC6Sk3nc;~ioP@XMT{eINjxj-G^ zn1?S{u0SSz-VYT`ln^!sRwG+YII%QagIl9a#_a`&35TrNz7UfC~r6@K%q>bKzFs^zUng zS!&cr;Mus&pT==n;VgcdsW@9yic0{)zn>C(hbz;g5~6#Kx6%`!Z`QoWG=2B9=&0}{ zj%i*!f4FeuHHp>mD$z@fxBFhVzL{@SKhBzM>?6rs$8Fr#-v+%7wSgCADgP`Yz*zfa zga~6xv8dpLKQ(`jN3PV{R-Xi7HE(6k2WAC^!BX_FO~eo3Wc{6UymO(9uddOLEFZg! zzMB>%)r9dMNT$}P^4ptx*UHUd+~DS=M+Y77Q`KU`J^&i`!B|tBi$+WCK``@h(8)m$ zypgAhrfzc!Nyam)Q_9~ih~vPq+wt%@A>L6%^j@M4;;CBmVXB(qrYzqYua~{*euiER z@}K_x%PS?Zn1&ER&)hEoVOgifomn{Ra7Y1RjB97d#U?4{+Vh@F7R$*au9)@7D}=pw(hEJ2F%51P zju|h9h?&_W!~X`sQVbuFk|GEbkq#?u6&g@Km)H|SZ-mEjR{cRAbNplOnWk5gpWp#( z{U_@7iGn)<0dkA!o|)oGqWUVgfyUy=cwFp+ld-8O000gKrkM_{=LCc=3|Pd}Ln?K$ ztwn$G2k>*)n}-NwY;&=lN>$2NxAb1vT`yh`8?q2yl0xcFtb1y!!(eP4C>nkRgo!Tc zo^G?y&wEDtYUiWg#aii+4ArsnY!IYoa?_pPE`_2CZ;hw#stnabOmo?T#WzT|V5S7* z%=>$^0>({ELv7rXF!Ob3im9npM1l9>xgNuJg7ON0!ngMJb~tr>IuUD|5Uen{Y?os~ zPoDL$wlz*j^i9Lk)`VAzIq4IhmOj63krY#noZ{V{?F^Hg8*@2Q2&(Ie{L+ZQ`fH_= zA=kTG^WBY*j8NwoE^8GY6bo=%4WoYcV4oO{&zIBfas8~P=kpvK z1S@BDra7ayXX$DHHN%xnO=*C_dB%B!b{m5UnvuE_OyojtwzJ$bP8@QHn*2W=y5Dv_ zyBWEiaun%tlOC?jwW!Lqq#>WJgJcCvSaT|U*)uqFtatC_mf)8MmLi& zLP*8>4u3OUUnco8`eg1la}QW`I(5Kip1ifOVTP`gK0%rq8%%uE+bGiLXQIN`F<-#% zD*o#MFO0`_lb8|g343sx&$-cdO9~0|jJcDt>0v!1SsuBWWz4hVYw`-ve_y3>HNl^c zcVr}CJs^UW#hV#>!}k@7$G%=}Qmu{^?$oP~$-56F;jrO=My(p%W{Smm=GZtoKv9a(F1Yd^uf_~st>%34&;XRrZD%@||ryG2-P z(na*r6 z;T<^!1yXCMdI2$C6t-#5+)q{R2>w|>C3CRT5HOS*nh|kvd{woc%6!+Pj{kwpCaHWm zHlh;7;*cl>K`28hrWhQF6$-hsqL9}a18~B68LeYb1U4=5Xvp*@hZ}Mio@d}5eNlB9 z8WNS;Ffw?88Fj?JZhI7s?Gm@@)kQ#c(@-IH`IG+?&JZv zEj)bY_5We(E1;_0x^G2AL=lY zqB#AK$5?Ywh|jdr1pvz9_&sV>K>uv<}t?(MKtZy_>XbbFSATJ zM>-xwE8;S$(G>0OoXWcJ@wBqiJbL<5U!&U02utuBSC7~I65GD*k*p!x4sGop7iFv8w~a&bmgUs&3Ty2`nui%)ZMv6~cQ= zj2Uae!uaUkCku{4t|R*H*zMlDxJr&OnI$C=K)yUrn#l@(Ej2H^ zfDW*lYq_KSkTJVFt)|iL;nx$O1*7pI78Kwtrp1t$FNrtTn;w%OKAs;DsLeEsOiR1> zdEF{JC??>*R8LDl*EA3i_)@kB5w?8DuhBb(&!bMc#Z*ETj;G=vMs>^dg9Gs;OO&m! zDEYFbs$3FWJ(R*WU3b!8f^8QcZaI1iiq=?6%kgTvwOoFFoIvZ7T^+dNr|da?6D~{U z{hgFpxp8ZK)wq*?PWn3)({_-2Q}e#28rA%_oxg^GSzF)60}`({+`_+f;_tN(saF5- zXVm99={6cKL%KJbTlP;sbzVbv8&B^0^Gqp6%wp>yOueX-G-PqeWXm|vKrK*17pfA@ns zpGxT2)+W>R0jHj``FNG}3)%7w((+`r6T~{%qka^p*s~YiAMGpl-Cv<#(L5^FXc9b{ zvnbNTl=VeiE6?k)?2snX%Gb0sevyNd^LDMed|wbtCBw#G4EE9tS=I|QKn$6qqe`F& zK^xw=T(2-=Rte}8v|#N_La(N^(!jBOxl|U(0U6LRT0BJH{^k;;E<^Gs+T+-H|8ecA zH775h<|j)Y>mt)4Rv%2qght2k)b^L~OMi(Ok!LNpo%kuRPt{hXXmEK|-oQL#C83vV zWnVVT+F1?B+n)K_nQodcpS1W+v;WjaEtA}6Y{~thskuaYoWGjwPto>f+GHuMQ*jQQib$XQa;siZ(Oi&`-@^UXtb(#==#&Ly z>cGMm$xd-TF@(yFQX#(6LpI4T@i2{A8$JXDh()A3wUY2UTlY31+Z3pBEF~l)015<9 zMJisA!;$7yneP5E_z1NyE3Gy{AJ$MXwRKqlE?vn7i zM*s8AzGs@oc3Q3|XP4Jn>V$zl1OBeH@5UWx6_NQ@Wv1k@diW{yjXU3Z?HjS3e7xO= z*Kj1yj!P(q0`Bq}^ZI2Qd5wxK+2#}OT6;g7_>Su$U^O!2EvX98Yb{Q($p=*t9udxA zf{m_U39oFV>c2-o#a&$ys8<0Y5z!dpb3*T(-YQ!%#S8COvql4(%(m{mPZdDW0r%R?*hGUDr)ZWV&9O5_$P;WadFS*;YW8|h(E|fJlQ`6FXpnHk~4<6d6 zaoa1Gu-w0m_Yyy4Cxku6M|b9IMUBcW@!O<6!CdXOv>#bQ&}L&lOm*y>qldI?7^5i4 zT{)!wrm0!nQxzKpOA&u2N+pM`kUVxK#BF$OsTzZxLqup)jbA#)gIDI7EPAdg4-YbG zld^a=uiDpIE3f@!m4}K48Bho4oN&-g_Sbqwru83(1RIEt20Xcc@UZ_zQyRvW2^1`Rc^i!CljsuqLK{V(COdt0n&VJ zDcFZw+?QPt5D*=v{X)#ii34!v#%y@01WO@IrZ5*(?537uBO9xV#@)3>C?G??*@W;@ zGj8g6QWgt)2OY}3Efx1=XChfw3zNhDdI12@$iJbq{POxeRzCL+f~I~H&7QN<1NB8_ zN+h(gmG#ct^d#?^21MDgw4>nF}^^zlE|#onwiZgswPLJ6%R#Vkq6Qo5+VL$c2M%^RY` zlnJGf$83M2wANk_(>EpdvJ`wsoT9`Woz(oVy8_)-L^t)Gn5uJL+COg6;}1;^tkzs5 zfWK{VPukQqYgf9&L#peDY?UNJP@M&EnAB_QNDpKs zJWF9lhJnWMNNS!j#7WK8vNLsqeJgM%x3nNp^8dbNAr-*EPn8ou|MQ*OHlDcG) zB_f#@ZwAo6+m7{V`kh4QprSlSS$lB2>hna2`ZPNm*LH86$8RI{HF*>rb|+ryq-`%} z@y|)(RepktLsvVK6s;Hp`-GuyliD% zUR{g=cI!nB>{Yea{oglN#me-ppvoq?i3o@qWONl_VAjxfK$t)lH9#Z{`Xi3ZBU2S4 zVVAXZPrcjmNt(bP%Cc^ia`d*UW{hUOe+h_8lg|{FPd{5pVG2!(h$Mt= zMSSk2VDp8*x)kLmAGY#RpJ%E&<<~J$d82ECOgeg{JS?iNl9fom(5QYidf`g-xid%D zJ3|`MruC^dY$w^zg#Kl^n#{sN=`W#E8?^A)ZzHmLU?KaCl`tbOFF5$&b6DZ$er;_c zFi*CJQBMw9G{Qi<1dX-?_ixmz+XO?e&rV{*M^u_2>aj9HLLH@^|Mty&HneK#oSFZ(o`G0mE6_TW9JI19vVUWy=bBZlval#mrP{vcOz3eKlOSurN zcu*2~7|U1q>qt2sNp7RdekWHs&AMb6FXikO6FkIJqjY`@-H`Gae2D)Zc>V1^znHtM zpD@T*MLbHm=v8g5KX7j|Xn2uBVdne{B$03D2_niQJqlY5k_9{Tb%pyTEg5)(yV@fW zeLx2`9VIMzWJ{iJ?0lMI^65@z)lpRyW?eSSYfih&3h6 zeoJ!WoD1iy_O<|OvIav=gbXjr#s@hNQuk1OUP05&lig-4E|}LKC!owpT%nIV92q|^ zEtHmEfYIvVm=;HEh=X1AS|gJ~Zx#KSg$y7UHil19>kh&;Ja>7dzZPRFuhdljq~#Id zZ)kUtGHH4CmKLHS;#OT-EMhrUI6w0@w+p$EtZpa}Qnu2_Amff+nYHAPLshvQlj`&A z3RL^9j$~mEfd<6juHMi7Q3dumeSrTUrwk&qEd^QuUTrX!tdD+G~r}r@>c5``x4WtSBnE-l6ZNUoQOQ7&b9G#BB zWMZ{W!r0Rwku-w|Ds|bCK^}E3(`o+1w&98E3#bG1{ za{-c5GAy+&j5})uguBHl59#>l$!jO_z5Vy~HvW^t5NKYs514ZZvClZ0m0kFbZ;zNa zb4%}DWv&oOS-x+;H$in$1uP_O(t>PR7!9LhB0c*Km4aqmePPB*$)-v3>kpT!31}k~)$Um-zR?NY&I|twb6Q)rjg8+HOM&lV$9%fY zl5Er<$|pj+f_H>GiITGc!6Iq##kc99jSyWeaE3kvj2r3LWR}p~-ew)LYnzd~k`ChD zMzHZtSL5CIi?)l$*e*@{@wPR_2_Zg$;oW$^T{$y}UNh{}hR@z;c^~cZ33mtD-74-l z-=-VxI}6do@>XW%k}@wXPsF=EK-V8YqkVQ z>?j@)6(;p8IrYTBo?d3J_12C5ILoYlc_p=$^{F?CadGz-#E`i*{nEkQrX!Q7w9uju z7NUD6DR~zZ0LD`l(+a0Kk636?h<9-SbHE3n&4ryE3t&#aOjTAwYGO<~XygopMQP>{ zLp#W7vWgmg?p@7NsmXN5&3ODqC(%ld#YtIG`T4w|wtPkN?{V)HC$8O|*V_yz zxZLRPn`TpQ{OWRmBO4^vz-aBZ;$KC!s$Fg~Qnu6<<(2%oykYP@c0^2kOhUpl!cZVp zgQ@IGu)NUJ7Mif^_VMgk{~RDk&SkZGUyzyU2M7u#;R-{45dZ~W%ggc3PbViQySDAs zGeUC>gK2(=WrSEALrI{@{n#&b4TqNVlTSIDrWV_)>Px8Id4kk*;IdED0xXu&b1P}tg%vWvTS;%KE zOz`0DBl^8$J-NRkCzP&x)8`fZWN4x_AIdTNIfwR=L$}p-wTA%kMo`Uj7-;IxG3RdA zE1m_NS&+2~(Ef@}%pvlrQs;q)JnM0+QP%zRZdvCf0;GO^com5&WCU;R4#poI){4t- zz44i4s4(kjHQIhuc!M#P(3WCDpUB~yT7~zMCz}UJMkSc{QctMkdf=8=HR_c#PVA-m4Ni9YQUnkvU`&dbO zhl|><-P`}QD0cy84PlekU=}%wre5R1rHqVmQy!GlehENxc-rbtHr*;_7F@*&%hXp{uKAM;-&mh|c| zVqlo1Eo_rgB1w(xx0JaiFlLLka}6asCx?mkvTNO5ot1C}dNmrx%8eREl~b*G__^J2 z?ilH$M-62?+SA0&qpe52oIi)k@bwp)-^2C}U!q`T80Gm*+yDNw@Mnd2(uka5W$i+& z#kyb!pu>uhj#zV|RfFnRK9h|F80<<-AScbT^kEVf!NlC03dG=%0Be9V?}_(|RhpV< z8KLm#LT8`8#~WMKBZf^+S0I7zoc((!ToRS{EterwNSP-x|IIWe=iO!#IjQ^h-Vf2`QjQO-hLr1cr68!FqVgiNn<6QbVmt{;V@SAAuu$5+ zUMH34UCuHm(vjUs4o%g{k1AhKC0m0%p9^ojZ2<_I>(hlpwOV1!Lno2e$p0+g4Uh$A)-%0 z00Vs)5os4rF+cFgEoVHFoFi%^9DsKK0}WJkDl5*9?gxTw+t$`5B?xmHQy_lEtXNjH z0HYgDmWK51JtjQ|;hz#o; zIHj`fF4spm5f#o{53p&?)}KrZ{9O`25=j+ZDmFFvGEQRl@{hJ$UkslleN;=_^!8_Z z@?bZdT8IzLnF$JL>_1cht%Fv$CJ%eV%{7tn4A98uu$`AKU#~!Dc^ProA8xqQM^|ABLbWLRhp% zO>=4h^2;mgo4gP!#Jpu1^r{@gzZZG?rMFD%WF z$8I&m1UWSqrvM${7n0|&+gt0z@g`C-h-^Fc5fcPUe>pSqf;!|a+m;Z>{n}AuY-*Yc3?Gz4 zsTV#Z3D(w^zem8E0K;6_sb8^?MToU*;z;3!intulIQ23%vm36G>hP~HO}iz6cm_vf z>C8pItUaPlf?$2vq~oFOb<+2JCO{blBsrE1%f1tn9-cZs`OGm!QChV*WFu2ap^wy;W6Rd8rxq%&3+lCUIUSF8M}x)x}+PMx&gA)ZCgF{-giM*II?G+)M_Btc_^_ZIZtSnaQ1F<&%kHffEf8aHLaZ2E-scYtg*!%*?9S^#jaOKE0@pT>YbjC+ z*l>sKZ2x5W(!Q&8&9gI{r+B)ywvjL%Qp(P9uE8UoL<3^IHD?cWDYbtuqg0TQ;R~cfp?b}!C0^V`{N1s-@ny2db=} zvU7j@(L1tE?vGns=&XWW6Bx}0V{)2GF{5*Ev6-197Lhp10TOQe+f@QV4>A2Qq`C7r9#eS%dSvC`FiNn-kVrMMwhjkCG{u@n zZxJ@#7D{x$kFBDh&1I=R`-XSKmk3Y4)Pjld_JyOROCm z7!wnF|8R2+Rc234vp;2#@}0{pduZbQL*n_?x^}t#T_X4&wr-=22h%}WC{re7z3c7f zR~2}{rr>@ifB&0ywA~evT|owy^oC*izdj%W7*>97P5GH2^+^TMg4P;F%{np2+khfr z67#bOV-sWJ&tJZL+r7nJEB-K0$b1Nq{dRq?es$Fls%*@cG*~d&6v)EP_W>BZ zrm&Rpd;0WYPh-2(OZ{5h*(}$Zhh%9uMd{}#ynn0@{XjuGMd0|HrRDw002Pdzd=zgm zYGy=LuB&~eJ?8sc^?6y9-t<4Uc*L7~+?gQaO6Pa+GfahdE2U|?p(y>ZX`@)FwVtbs z1#}LUKYu(<&A8-=hAY_&bbgEw6FQ6Sf)|SmCJ(<`2$_awy?vootZd8sV-TLe!ee0( zQ=iXAreGIV^6j`E>xy`TdkA*S^Yw_f%JuGz(<@uW*L`=JyYye&MYx9wkvS$~g-`|M z{2aB2x$96$p-+~rvA?lmTC;A%HRghNWrul;aTT4@Fd!pWD!+?#xD^Lmjfan2gyGb> zWoE(NR9(@WW+u+e!Xg9Okj~F&2XCeMv=TXR%PA8gcL_WDkAZ=g5Ili^aUUvqOBlCg zC{B`Amvh73fY#tJjx|9;LN!s=B~E;p2x!dJRd`-RHjtGgRtBEh28R7>6>wIe1F~h^%#{->CkX_@w z(a>m7dGl|8CfHJu8hCS!wU7?aSm#6#I5UitRX^^J;4dhDdxLg{s>)_bWK~F`Mw}T^ z)yB#%cvVf!nM6&68pp9;IM~>7Y~*joj0dQR>E-#JIbCkg?Hzkv9$zsqi3tfL-ut!Z zW@)&su~dO%7%QFNn){K}vdO&tC^gw}(wuDf&H5)SXX|*C`0^Zb8j1>sqdt=6@}aF! zbgrDIV24{?Yz>BJY73Ye2(-lLy>~e}vG{>P0YVh<8=HHzt%MA%mNg9K=@}V5xcHhJ z90KkvU!p8lIqg>OK_JGP3XoI~v~&Oy{CJH+-h@GP`NZ4sdKew!^j;EEt zfOtvfg)4T2X8Vu#NSQK&ROC!Dkkq-ds8N1%RkgyvSM4UT4RN{@i1JsjE42GYkzxHF zengk!pNc&gCw_{A7$jQ=e6zFLs^9<36BP%SMkLH%^o%-nRoc_s*>vP*dM8}Se zTLIimZDZ1tXB#z~@Iwq4OsjtOgYataYTk224ud7b%77hQ)&Kqddl|()fJYT34?rS= zNXzu%GlvDeoS^05Uz&G4j9)f0>Ny7@zn_;ZBs@G>fbxp%4BC#H##*|;+ zF=>fC3Fw03ebRY(*2h0fugjJ(CZi_obrGX0PSx!0go*ScV(B&OUw{kSQg3 zX(?i;czV8RtTeAznEQo_b;6#d#Jy$%1qkF+kRNoyWxK5EkaHlE6H02JCWWijW875s z6!V50aTnHl`HOv%U_+l>VE1^|mt;)m4rT87SNYW5VU9NLLq|3mJiI(|5(2s!DZ(Mlf6OZ%pJ1c5TabmOCzy8l|=Gl z!a1L$MT-ByiyQZSu^9I2G&q|I^ybNWS2|rM>VpaDd4Ypw^)QhBu z+1xzgEXf}>0Q{C82D%=Y9+4ZoU=@)s;YxKlHTReOUv?a?5m^8b^4lg31Fcx-1hq<+ zJ;i@(<^P8XJEEY)kXp;pa+f*Y;ugam_-Q)Jz}LKDdum-%*F!@_8qCYX-`94UAjXoX;-G&>~6!(s#mC0(hMu`5|Gqg@pkCN5j}B22Y7GSvWa61_tf}40};a ztTr_M>zBLlkpVtMj4g9icGl#@u3I6!`WkOaNurT-etzBmgZS)A3lSD8;zxUEhy@N8 zKCkyEY96ru^obL)ce9*N8U;o^sv63Z;#7S)6+;P53BQqD=+a}IRL>(JL?_A`F|Q8G zGF1d>No%xapM#TAnb{cQM`A0BY>NMS0k~3=?7qjd7&&hgRGw@*HA?=gBbc_ucoW*@ z9b^#Nq6X8jM@pUE1Hm>tFB}}xnHCSN-xxQwUMZ33Dw7kzWJ?>bLhahpP4ioS&@9jY z9XH*aeHg!?w#OO!C%_JT_GykC+8^s75BG3v#$l2N03}pJ**i1yD zl7!QcUY#oEJqkdXcMM((LbQOf@vNYwoZ_$rE9<#33WXkb_Z&XLMJ!$ia#WJLkCU2w zqb}~4(-aA%dxZ=0S%08B^y= z0PtdUMzY!5(4M~O-sz26&!onQhMAUJp_Y4DR&(s?ZXgKi=7O}sNt{_($-y!S(-dBV zmXGo7xsJ<%HRq7G;$y+nD(i*!@RI&uaI01k2A-P25#FtN!h9@a{ZYyBe(GpTSC=G@ z#l1bVwv#7CYyXE;VeV20o+p^OSMN7B^`E}M;JRySfCi38<*MXr<)t|CWZS6kI=Tic zz55tk$iYO#_pLIfGWWd zNOB$*y3$*l3s1dbt7Xu5g%lLwAJ3W(h98`~=UTwzrlyfs?K9l^Xjd~+RmV;7Ouq0( z)*9UR`o|xmCNuL%(r0>H!cQQW;L&tPS`T>`}bT!aFk(0^UpKm*VHl#(kIn*{k$9v1Lwr3R%x zx{h?#d36^tAM;Y}apANmRG0`95UE`}M7R7yvhBeaS>1paHso}{og~X|q6UO+6 zI5B}#G$P`P3@!P++X=d-c{)MY)CU;>k7Rd1hA5Um)z;qWt}K*fCDdc`EB_-DG&fxd z1#e&O^p%e1lCSNd?w!2vX(jVaJFV36?3}IP2C?~TNPva`^qV#HLHcSl*txjkC+t1} z2d5q?HUqN`tgxToEw!zzU?B=2iin=T@4qjL{G<$qQZBnRy)GO?L`6a4Q383O%3~=0 z-@6|4f8SrWE_Zc_UK0REj;u3J(HaO^g6ES;S#7SI-_dVzc0OlW%Ja-MS#g;JPB&X8 zG1lpH4+V>Hb&tm|FryB6Y|KX>(oTGh;o-RKwB8X-@#^zBRle*>4-!g`>-!jnEBOTD znD-x35XK{HBP}HW9+Qu7_30r#g~I^`g=@e8n6oB-Xerd}Jt=(v z*m3f>@zMkEYY$_yBmP}v#SV0h(!{kpcbtDN@i`tK3J4Xqz7EO|rKzK7(eDezAsN-^%_17CSTB>2BgMs4bq{++CLy4tXxVfnsv{S$VEVRns-%VZ=&? z?C7h%S%E)7Yt7fAoah5Z(qIGu!yhw3>X^e!KHFgM%x5Rq2tSaug!&Wd9SmpAZ`YFQ z*B?+K*K5A1Wk;ww(Oi1XBpyd}aDwt9dn_xrD9Gg$hWOeSjd2=n`87DR6 zaXb6P@}-9v*$!R_VZKA4UoDpM1>T(J)EsID|v)i--f;`wszQ9=GIF0u?0ODYH z@PMZXZci3(4^>FsdmyHGy z1;cF=p-n=Xgn0)f_K(C|uaU-*jJI`fyW;I6wh1e_#0^rWdn#gRAXI>D0Q}b(n9A`1cJ?xk-6oj^zS;3Q{2{tt$Sw_RrxFwlzp(@1)^{X-Rty3veZ$&6L z3!cVHTfX_v9_{N7QVA8a*))m;2KrV=5ObSjg?(5cDyr^}3quTlaZl&N+{Mo~e@e2qU z)QdXY@rJ^E&N}nT!&uisie`h_T`u-l5J_(-B3sDnqV2cQb<4j;L)fk0D~a@KMz1Hr?a)ka|np;yZgF6P^Z0 zji~`H%c%T-YeMQgVsZ*Vf5DdPgT}M+y4N|6WA%IzE#kJo$ucgZv{c-i_<;OnaGc00 z@cm;-+!y3di;Ioj8BB6~wS1&}5^!sEB14Q+o|XpOC4(dM>PE(tNFEu^?XN_V8Od68r*yEHcteqdI)X!G~DJNC3Y0^72UzD$8$zOb}ikTfA@G1u>hJ?#dsJSK^cCpq{jjKl1nUhs8CJ2@5r8 zM+Au5%Cw{IU#@=vgIq>wH)%Dne^6NScW>R5>``V(ya#o^|BK)Jx9%qtlpaF@Zi3H# z(>KSIGXGf#2&Q zbpgu+%*DiHBqQ*74vs9OYX|uX*>~)qk8Nkl2%+sAtK!D>YSDXRkT~wRQC}}o3~E>#coP8<$xAYC3o?B1)5#S-XB+$SN{=AMHFj0D2cRUSoa5eA5zd|AafY zoguN{!AmgD_TnBw*tvZY5JAjxIPF$8BA-~XgH(BBofC@n-&Gf)r)zf_@^=0100UHj zkhPEDJpLWG^_ft508&?gI@(V0F>(nmIGWJ5iMqKEsCr6Hvgqp9RBZ2(u16nM2)6Mn3FqyUD-paXjam+6q zpN>&yi==Z_96UH1*QrwOMHI+(=8#v)s9Qe&i-9rBw)y#J&?~TCs}jCUZO_?oZW+0@Kj-Fwv4SeXn58yc7}pVobO-AnZgl0{>sn_AYgZT^GZ`>Dwn zs%}+6`I%7<0Y5nkP-pq6V^{Hw3=dm;DcsY-&cA#}znyr-i{HJOcm{D{D-l=q@!6aY z%{)gA+>O9Cqi^T4U9gV(`0-9$-mlKjmhkfHhh;csjG!IEJM*1=}%>p#!* zODeAMV-|Nq6}b&4ilMyz?5}rqBjxFCPnc6&b~`%{R>)}~K5QDTGZ9USVW z2bx$=wz?y`>>b?^D$FKTYkOu_7b41$(mYhPCk(DxgKcLk7RzVh@u~drNMRAkDHw z%YyyF-Qg1Q-wcVQQ!?61OUPf}I<5k*SXNZD+)9Q{MkY>B8Ur&+vjPBxQl5I7(i|9p zK-?G!i3&k(a1<e#+x?qkGII%x@Ge(!wDyx_86%CXilZ?pV=*}T zW6IF6mGh){&*m3lqj2$GC#8EnC%pJeCqIo1=hTnTDX?of-PS%XOfJ|j?wLLJgXW*_ z;;Kbu7BEU9`{Pk^Vl>z2iCtPw&pI;c$9NSU%HV$+`;7?C_s=O!pRH*#sI~ zV|*Gfo(a^rD(c+VrT>?wn|+m(gG(%YaW)e0iIHJ%yE@-4VmH@=-?tMriVg?63<-nE z+rRiBqF=hssqaS2>A=TcCn9U#Qgwa%yxwXXLL>9pDqNY9@T|>^n%iFWi><^d8MZ^V)REE@gJVAW-AXP;p!swMYL(y^kACk`uaNUpEc~Wc-iWBadYNr zp5`p|)w{?y#G;Q@Qx(sV6S)YQcq(rLA-wbS?LCs=VZQj|hH9`+!~X1=MA~6gv$#PR z0pQUPI7nFyj)@@H_aQwrr;Mw?~Te2MC=2_mE2oizOli z`q8e(KbP7c9R1p{CijX1jA}6v8bb9CEO%yFi2TF}{rf3qIF)wXb~`uMj91id4!GfC z*G`4l;0#z|a3zJ8(Pm8rHy+8cvz<$tlDXk)X%Cg2ty;D&#e3Kx(G!F%1;o{ra8f~# z+hA+|QQP5zoD{AbFELD16nJ$vkCGze0fiG=tWPw0%maTyTfC;N9M57aOP+6{6^jM4 z#hV9^;ouX!xR_Ht?BtmzyvBGv1t1h;LMRB*sh8=bt$P(j%e6z9%-TRJfJBh>a92Gb z$-Hxx(kM;A)-_8_r*4FZbTe^EMtUa7+5I1b6afzYWXKk2dCIVQK~ECIc7yXTY-Z>8 zy##;^=^u_xhATMxM0eSzetbKsHpb77bVt)t^MqxY`K$Zda%!AhPuxXiXG)1PaCCjY z{`1j6V6|{c81Nrm^AN3&&^@@Oi;N={v-uu&rIvlO)sVnAlaRI&Y}(Xv)@9HOkhgxg zkLXIH;ZzP!Q{Lpol5Ium?CuiuJW}~mLK3|>5sD?aSyPgVyAeGN)w%PO$hbK5ys>99 z(d`OCsFt-}tz5dZQmrT>IE-ORr6D4E*qm8Rw_(z{C@d@hnJFCeru(!Bc%7JMRZ3m#SP}Lv=j5p{|oyUmwFC_oIetWEy&K zXHV+o-9H946EyUEe}7RYKLD(77%eLZ$Ln7o(3`!xII7l zA(U=y+9Cex$Jwg;H`mBAmKHsyxTIti=6j1uynTShAl~zm+}@Rc+5(b_?<=u3IKlm8 zKioXZyHnb(z6E+?V8Aj#88rBB&3B^o>3@&i$&8i}vK|6~A1>bO8c@jJ1Da`_BsO6* zFvPDF7>(#w^Yv1=K}3|8gU;vsyx3;qD!vIeH^VNz;}Z^V1t}@13D5&dqm9Y9+Q40k zysDDS2I^L+aH6|jgf(yCjD`~0mNLT5y*(`OEtAGG_T|Nr%TD4M5~$iAn)YEb9U86p)YoJ>gLei0sg&fY&kBIr(h$I^)BCw( z)CwvW+fwvh%}lTE8m2QFa4gRP%LT}>i9R#zrGEp>SF65Nq+{$H`Y@18Be#FX zZ_?_2FFJz@_yw{MCq@0s?mFp5-E-HFjk3r;Ya$tC5IVlwC7(5{%Bgps}{506uEKrVr0ke!fY;WZ>zWUw`u2JweX8n8&t`RXA>Z6(CF&3bk`5VaIYC=(Zq+&>NvWtUr>RIba$`i zrogSE;Sqz#cde7aZLlTz%{#dN(>Eb5y|Qv_6GuqNfV%{}$POoKNk>JUj10=Qx;G}4 za^Z9HDXkptTRDUeyGKr}iyJ;^RJENWp2qUwwUic%Q ztwJF*fZM4a#`F!n4=&i^!o1S*nx2P#8$w+M^3<)!6piXX1p5hFOPlf_Z~}Zd)gE?` zJHdaddB+#|8nzP40zd*sRo~?#T)TT6K{&df$W0oV9pDpV} zz>ivjurjqCfKxmY0KY zll$I*%E&07eH(szwf>_P5U#K&up#+6Llc0EHvtgV?)W^7Ncs5jmpzb^fPe?EM&2#% zc;HYW8%U8YJ2--@*=?6^?_!(o+8$T-WPb(p#l8 zMf_gHX4?b1FCaaB2P>@as|SMJ7S2rqUqds+xR7+Qc^z? z(tZjWqMw^gWn!*0(Ld2#!pL?s0nd7~rhBM32>!Pl#78Wi=Nnh^Au;2s`JhQPN7X=l=}R&T4cV($5qq+I^CDG^pa;e z{WTYa9*3~fy}hg)i}9Mp|5Cn<*ym<*>d8o@;CWlyy<>IF9Uti52!A3L#i8qi{d>C> z758@l^$ysx?sevB?+n>M1^zap72ZF8Zn5)C2uc66sr#E?kaFp)`<_gzUSjI>;QZ$= z#Xdt+ybcd2H~>atnzrLi8fN8%1~ka^lQ+r4X=9^>^Ghor=-%bR&oZ6Zrndnf9HEHq zWB*9Vlpj`%iY3bF(=-Q~{!uR~>4#Uq;68iUOTs+_g?(`HG*JL^oG`X>Y8Vb*`Qbjh`Geen1A00TGZyZ0|fGO zAv{nq5KI)Oms7Q4<5hiUeM^l5nEuV=M$Wi7LM1{IA9XlC=@JC!jTP##TLw`T=#`r= zT9CX&shPPhq5iCR{rU#}8}BVkqDGaq)W1pNJxE(!Np=!xQ6gxLSV0n^ufJD#yPC}RBQ46{+IFLcB}&YYo}yma}PuPEmF*@ ziL;)(cSnn%=4(MaKef)QYIE- z>3pennPmEplJ>Q0*FIyHVvw@CNe3qkx%ksv564)#a~v8x?m^;}XNph1>`nLE`D~di zDcsBcH7#YTK0~U$e!=EBN1EKl;d9R~jh}uG{LJ=ruzyQNLT07;O?qF3;)_5dT$@PD z6?%jQpT9=k`|7Z|dB19@y2K>uhewUzjb9D5@2=5k3>feg?BM&_*c{SjZdd08y~G^< zqIvn*^}=UAOzNq@hnRpuT9UAsBmu9Bn$;q$F^*YRdfXmqsh@9NjJE_4Ev;;f9V$1T z_@-vYb8OqzjtH#r0!L@;#GK1 zH>BEOcc8G@R?qBX-dZ8K*Cmk^%}gO7G}g`T^K{yZaq3>`%u!-+`p};|j=5p?K*q9( zTbP>!$d6ajnbd^emR zIlOdes(t)nnsinZ-r&Hykl%5xZubazuSv6}xzuN~2v=rH%n-GS-?V+%tbde96w8`C zWyNS9q_3vbd1@t+#*H2NtL6J^p>Bbh|9Sx|8>_WQ2nMz9qN*8{pY{yuB(>)k zBEOEDm&wRt+sBf;Cg8hXo{7c1Iz0R^vLvzEmgyj|GsF)+(82muEL%aWy|}U@fAS|a zomwrE>O^%_GxG2o3C0JWb`=J+1ggpu@-v=xu;Iqs&~6cGno%WyH^?(W0`l!^md|_7dbhSWhISgxX1E{R8)ZYd(L@YP z96Hq3mAtm1Cry#P(9>hJMEVlX`x4x#}6|AH7ZhY;FO~S2o zGZ@#5x0Nh>fJ_2aH2C;b;l|$^t!5??c)23u5FCU`1Z9ZEBy~s3MjBaMkUysIlrjF`@;*O`=XjO7_!>k zC!QlJS1U_9MR`QnFZvkm>!YwDEmEz<^ce|)h*0Z7_cs*?v1LoMna!hrP%w^uN1rFy zx_z_Ic=(DKeh9b!vq~JpHx0>eEJJQ#H64|{Qm^jIiPY~ZDBha7z4+!%(Y=B1%)O6q z>8pK`7ZKV!EH6Fl#mm(%pK_cg4RgJ?@r#Hsa!P@F8o8||6&d&_ig+k0H&!c{hPZ_v zqeYi!ti4sRBydbwbUb#HEqL$`@xU#14xi#5v>74Uks@!`o%6Tn^4d3I+Q*(-J$_Rx zK-?XS{G~3b>w8!4H|yJt;!aeJQ4TgW_JFb#`JSV$;`-7FszM4l6p1!&u6DhT&ATJx zrJmx2{jc`EJRYj{@Bg4ELfh1xtwkiVRD`ij+>%`}lr_ncWn>%KspL*svR1Z1)-hx^ zV@t|zj6IAf%P_J;_GNz8$o+i(`2F!b&;QSPc`<&Z1>n~G`Z?7BM|L&W}OO&yF==+L=36Kyet0q5Qh=7OnMP9 z=UYOO{w*m+Sqzi)Qv&WQ`3Wl+elzOQkbckTcMw@@guKeqj=Gk>Nno;5)p>WTjnO(9 ze5#jHx~NA?xMz8S=yrfGGqLsy3)=0}XFH$kaswx`-@DlxD}<6{OHq$uKqC;OH`&)) z_iciFnVpZsEKSyxTuR-b;TMJ4iq8oWT!a&~Gs8GZ(EX&?Gr56y3)(IP| z5j5)KJutpI^6O#k`L4*-c>I{w(-3`lZiL(&n4VIsr_OA;n>`aqmh@2{>WUOX6Y9O# z`E+KgGTj52Iqe+wh8#P*H$+{Y_mcgB1TOw}Nw|#B@eeBWsf@QZj(nD4|05HW@YS{T zW`zBRRgh<*@~Nsxoz7Gy5Gw}xUBsMQl>zz`gG#UcXjw+tUDjA*0KIfC?ddZ>#KlQ> za}c<|=;Lvgn^TF@Gkc>nFm+6W?IPYP-SARvN{`|xcO8#CB|-vs%G3^C&8|sK_}=g^ zsUOTXSa6UNvq64c#mw0a&)9Tl0YVwXy6b2+^FJl#h(`ReT%glm)3^3l8=?3_ z=-$Ea-BXuK(iWyB+AoWU!L!Pk_M|Se9Q+0XqSza$55M`8MbbbZNuM2SaoNYJRM0cK zZ2#UcVFb9Q|0PLZ^mLN`(BVBhz&=bEUQ)PJOYx>hd3JfIT$b@R5Y1{&Gy@^GA^X1- z@*kiaZ-{q~GDw+pzB4Cn^(E;$MV#w9lcX;Pf@4<+NQtg=*55VJa^{@`8;=_)T_E)Z zqmj2L2698PrJh#Lh&i+2dy)yi7fk^ws8V=M{`zWCDuam&>|DmC4p(Jgeb>3Q0*D)0 zpt<%K&wcP-t#`<3d@sRa&bh%0PE}V~Q+l!|F8nid?_W+Yc8^-#^zR5Ge|0eK0Zy+(_(UHq)xV|ZrH=SSc5X>LUM4}EVLeFjM0$YT(2a*hVf zf+9yJh+&SKz4hr(Q-3k=DOKmGCt@?GS+@^YB=xP6^jW47SwY>WkAr$H0axwkZFl%j zf*>8Dhhvr{lk1*4XFt8o&SxX3`!s~36oY-&m%|Fr;yC;{^}wFtJR-|{HHH+uOn;I8 zV&{YFPV7z*TC~=@I|W83ZMv|^O66cR#w#TEx`Jvf>D8o%K}Q_>*llz{U*1`q$@Nb% zjxS()9KEpiIW8Tt$R(fH2jUfC=NkkjUQQ!A4#-M5?vE+*NiaP%2y+ny!~^pWbA%*` zF_@i0Flb-8cNHNI~Nb z!}2nDYaqQ&#o@(nac(=2^hh6FaKA4QsL*lXz9kPeh|Zs@Z^XXiN`6bH^I!ZujWUEF zgL=vKDyt5E6!+g_U)n6ae9~N-Tf*Ayk`ej)9Y1xY&fV|@=RbTiqWJ^!ficqYJmC5ziMLNjo_qbzmOo0A5&Eembi73l&AHsvDvGr` z*S#W)Vjdsr8MQPlu-9NIwK&FM*oUW=yLjtvSy=lQR-gsVMJ2^VPv6-=sSshHgeRX6 z;k_=8l-qcs%oZ;D8fWq3X1W0n25CJzS(LjW!erah6V>i zgsF#szbkc**xy*XqEQtW=Y72JiSbpngFi?|ca70pTw5?z*4x{Qe49C~rwRq4AH1{a zoXy>744L4YJRv31D6vEfD^Bxhr@m6@Ehz`E0z^+u&Rv{c^^}W=*q1y8pyi8}>pa~UB9gPG|n|n!I{N(oK3y&PjReGUQ7hAKQNkvLuOZURrwWo#-c1#j; zGM>n&b6+Qmo!Va@MPda^VN?VH$U##$67RCb4fnC-votHy42^YNP!u%ULdm3hV*NmwMnc#ld$BPqO@>OZlJh|DW$UfO#tdyJ9k*hZ;1|{?G@AyOj5G<(~@-QLy7b(2R+SS0@-#Gmx8$-j zZN*vD>^B4rf01|<)z3s5t7qjKn$<%hCZY^$kM<$H(KEBlwqN6O*INR>_V8TWR&>1f zfcdaQBb_8&p}e1JSL3S2KAYNpYmvR?hpk#&TWZki?)mca4FPFU-u zslVQ_Pry?<>l29}+UcDEN0{h4nT=!LGZ`b_GIQHO0HCI@he*3`h`tnk*(o zCOkqNg^V6==ALh-BK_36or;Z7mBbuC_U=={Yc8Xzdz=cGXs<*u&^4T{ z7^57@9r#eCSX zzVr0wk&yh)AVp7|sjHlCk((Qbx!xVn%m2{%G-kkP4m@M5KUT!ZZViH*h?3f(Vq#Qq zO8iuV*Zi-UVcU^@7^o(`VVpca$&;{Qv3Gn(Nd@7`&yB0y04sPKUXaAXaI$)4g#f>1 zHo`84fQnLj=PYoo2U8z6OZ>ktlU=gV#-cIo6NV900%Ja@X^ru5aqi1hq_&op-Rj&h zb^7~he~2Uo+-`BPDBrx=cqKvvq*&l}4r*sI>RY&GVNT(Evp@#fT5yS{tUw_;dB9s&>=dL@6+I37b#IE@Rdp+>BUe13_j#Pu z@aH2$LYh?j^j6&UMC;Y24~&uy&@~r7`#P~>nnuxvC)+%nq${7h^;@CxYZ`iP4KInf z%!yjm-l#?++dO-}%U*Lu4fGcf-f^$EQSHO}QLPlCMJe~SRrJ!9(>E&=(S2$)BfDmD zJD>u+BbDU;yL_<$O`ys=bu3V{x+dRGn&Da7Lj}OWq(3(g=t2xqt>Dh1F9EPQ^ zd77P}42)zAyLqBI2QH(AUh0~*@|{G>m(SKWbQZXeG;dM)@(26 z$f%IQyph#&otJ|E>?FA~@cAOlgZ=}+=YPZlNmZj-p`t!k#e-8g?_>`W&BjamtUcLouwdvHE%Nlc+ z%kK)Bnt)2}cvJf=F^A!u6f|@umpPDQX)eO={Je}8QP10QCg6<+p^m@ucXIHm!&c>d zEbZ5v*)0ZWwu!d(f$j^{w%@m(xwJU8M#{&JSbF>@+~mz=#+|oh2VR@6M>V_BW(jg( zcTKtVs*ufocZE`uBW`abII4{zzM2n$S_Wg<$TKu$11?rele z2A@$bYNWBmC$^|s&EVLO{fU*k$n8X z2$iAgE0#BYS0$(Tc^8{HKtIpiA=18N^#b|L%^sg7@ecn2z=RiP=L1`j>H&v5$2o zy-Kp*^`z`P%E%gbm^2*ib4fGdt+Q7q&>6kyF=TFSinnP_n%|UGrO`?Q$LhsO-Ll!Z zhdwbyl?88E^_=OJ4O;PAiH6fo(nLKItDQ=@iar(HtB|t!0d!1e z89!@;6RsCg+3ohN&?WhuAF+L-^UnKGaVqF0!Tn8f5lV(t$o&vz8LZc~g*@4D%Q{Z>|fOO+ekos`yJlL^W<+1!Kb*pL z5*N-uWn1#%mP`1BM|germSK}Sh6}JC4!hzp z_Vs?}np0jlQ(*XY`dk1KofuwENonIQ?$Zjc@PL8#@+jP2wa<9xbQ{WtTI_DPKagXW zt?@FYovICIFWql<*08OTkAXE+0rqAM@Q`)R3mADOSi1n)3`R(jkuLM=Z>boLoe7KM zVFi3%FHHbae)I-*rPO;Im-b68WryGEIWtf80f;0-=hXV!a$&@j+3D@&s>0tH?@>IJ zKS2iqA)>&myx$oQzJ2}dJY4Xik&kW%L^{2~og}Qz=whY+YNG2@qaO)DJV)QwWHz~B zy{wWk7A!lHZ&bjtB^Ow2hX{J}dU~t=+tX>kxEoKz$~(yD0hJAlc=ZVlAeTRm@QfKE zf%nik$=KzjOi3|H+6MR5SayqTB^o%0dLF5v6rew9O?re2Rv2=Zpqt{pr~kArtZFlV zm+QDJF*w~6!`5EZ`<*o|K~Kx6)d4%39LRl;9rNyZ;GcdA0e)CJCH%N-`h$3BU=<~- z+PB+_raOj50NWwvk3&t6448U)_{1-P@L5$@b?kgRjz=nkB}%Rb%S|S#+C1l{No=|~ z0G~L6NtuCIjHZQ#y%+UdJ0AoI9R_Bf$a$$@p>aat2A~v4Z)af@fR9d~ zkeM_WhxRrppV1SB5Td+T*(TrXX{n*Fnf$`f%b#SR!1Hujf>-=kqP-U?1G2u|!%P*n z)wrHKp28-lcM5`tFFS%u-KUhBw|~gjG5C$L(9C?2ANK^cfIRXKo#jF^&fx+z|E*fO zBcwHU#YY+Ml)fbRJHGA(ePzC7u$GxpS@wj5h~G>5(NWw+Y{1UD8>bbg5FQ`}(34ws zXu!Ov_tf~vG;q7yi@z3(;+I!;QVPpKcRvQ=dwO+xViSZ(scz zms_L82zq6;nw%d)puw{<`i1|{7jAKD%YAw#<$?@`X+$v-M5mCy#5|mwJ>&1=&zG|% zOW-n58&ixZ`DkmIlbWJNUEHEBdga$CWx@RUTz*nYo_FwTujg4bcJTLh;6`QV7W@c< z@B`yqdMrVvxYEN-vuosiuKTYJ%`<*Q1tp%(=pY?O5OjR1vF zSWz4pL$ErMH26zIVD&}oyEWXV$LJ7EJvlX~>)3(uvNzgijQZg%XCtweVnL=zkC+6_ zGx6)!_PH(>JVoU986Ox&`=S`}Pu|XYGB`FO#N<}#;wuGE#bKKhL)Nw&JKx_hHlkZW z5AX3bC8=W5a>7>RY@ojBaoD-n;#&xNyL`mdicauD6; zDyJwNWLnp@QVF3o&cu5-?OY(N{q8T>2nZm|-lezJj~-|NjQR{z&P)yQ^AA9!hgav0 z%UTVs157}g)!hyPk#T3?K#-}Z2bc#R4i=Z~-)NpOLh?=kA+2lJgG{$)&O~BMPcY(n zQ-HGX*=(9Ya-xx~gln{8qKdR6C!;oN(9B_J3m*Vdf|oEtT;~)|8Uk4LwOLQ~Y+}sa zBjpsgTJv-Nw4RH^W^gd#;r+Kbf=t=n4vy#Mrjvo$+RA~W1n};2E$vf2Q$FT)tO?fU zSj%=Vi`n&V!;hhjRa=_j%Z>oGoMqhV*g)IrO@tpEldVq-%x7HO2VsPp|3z;aZNcTk z$52;wA0d1cSF;5p6l ze0s_YpAdb7+)V$0p~0qQUS!Vrzz?KTLgO*F?`iC{y8 zzK({$fwtp%*z{9tKBq1Vo$_sLa=i#2SJly~NeZQ@<)ytLhkxe*xMllDdx!k4g6oL2QOgeN;vT6V;IduH%;S51lE7wJ|jm>Cg#((?7=a0)D5L> zoAjTzws*m5(e5GHk+>PG9(+E@jd1kO8BBdrLU;7p)rPu~XwXRP9%lE9ql$va>J;kU z3Bo7!hy0N~mbclWbmZ=`|2a#l)9ILQ-akFbDyt5kyLs`?Sp-EcdHXaTF&C`fu1*+7 zT;4lkTWa;rgXE95>L%xwGo1F5Zti=E9hC>)d9cOdi3$TL7=quRq zzIV6&Yq~yzAK^V|2vqtQ_1E+G-OWS@axWVjAm%2-8lTNNDY*RV{k#+bbWQXFqvGeR zqpPS-4T=gPKj)7kO1R%TamErRlWrGIDUa)=6Vn{L*_A2h*5cC$t2 z7e{6OEwraPM_cW#p2TGN%HH>)OtLQkKHWXC5vpMI?)sSv6Tz-OFYb*Um&;6>ipug=E`ODMgex~8?40dgBvrmpVo)k@;Aw*eqlN3 z1d7oQvPq49nD=b%oB7;&H^*^uQGtbrl=M$ZPcK)&a9l^hxWm-K{OsiVP*o#2ahf!* zdCO09#azF0hO*!jCL&iXU2qS^3PW^I4Z1ib&F!+m7G zY>0m&n|XblPeINCobt8fVRXJ5h;5JGaHDmp{6RPA4*EW9(_-GWRyms$sFGg)kh0~CMFxS#{+h9{CicK)6 zlhTvL$|x&Ak#T!$Fw9jB?iuTL_pFf$sL;jA`78LmNbGDC_~j%f0)SULE1uAIivtXP z)5^LFh|0H(nvx7{kYrQjNX5cX4_A}5-$s;FMw?S!#Nnn=%Kk`1{v$M~>IcVJZOcZ$ zTNG0em|K8OGRX7=fIaLvyLFnk4V)u{<0g+a^hhbi`V7}I0g#8lOmlay?D$u_%hM9H$zq$?kKNqEDO~?&>xq5-E4#p>bEUte;D2u5$@^#D!~u-$s#C zo|bK&3O7yR(llS=$TLtE6LilQ4dD+0HB?>(99jti!gPo`MMe? Date: Wed, 17 Jul 2024 16:01:08 +0300 Subject: [PATCH 2/5] mobile events --- extensions/sesena0u0/mobile_events.js | 6 +++--- images/sesena0u0/mobile_events.png | Bin 67609 -> 13577 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/sesena0u0/mobile_events.js b/extensions/sesena0u0/mobile_events.js index 700542df8d..fbc833e19e 100644 --- a/extensions/sesena0u0/mobile_events.js +++ b/extensions/sesena0u0/mobile_events.js @@ -8,7 +8,8 @@ (function (Scratch) { "use strict"; - const menuIconURI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIGRhdGEtbmFtZT0iQ2FscXVlIDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3Ljg2IDQ5LjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZvbnQtZmFtaWx5OiBFcmFzSVRDLUJvbGQsICdFcmFzIEJvbGQgSVRDJzsKICAgICAgICBmb250LXNpemU6IDUuN3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCwgLmNscy01LCAuY2xzLTIgewogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICMxZmZmMzQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzMzMzsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iNTYuODYiIGhlaWdodD0iNDguMyIgcng9IjE3IiByeT0iMTciLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00MC4zNiwxYzkuMSwwLDE2LjUsNy40LDE2LjUsMTYuNXYxNC4zYzAsOS4xLTcuNCwxNi41LTE2LjUsMTYuNWgtMjIuODZjLTkuMSwwLTE2LjUtNy40LTE2LjUtMTYuNXYtMTQuM0MxLDguNCw4LjQsMSwxNy41LDFoMjIuODZNNDAuMzYsMGgtMjIuODZDNy44NCwwLDAsNy44NCwwLDE3LjV2MTQuM2MwLDkuNjYsNy44NCwxNy41LDE3LjUsMTcuNWgyMi44NmM5LjY2LDAsMTcuNS03Ljg0LDE3LjUtMTcuNXYtMTQuM0M1Ny44Niw3Ljg0LDUwLjAyLDAsNDAuMzYsMGgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iNi4yMSIgeT0iMy4wMyIgd2lkdGg9IjQ1LjMxIiBoZWlnaHQ9IjQyLjc0IiByeD0iOC43MSIgcnk9IjguNzEiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi44MiwzLjUzYzQuNTMsMCw4LjIxLDMuNjgsOC4yMSw4LjIxdjI1LjMyYzAsNC41My0zLjY4LDguMjEtOC4yMSw4LjIxSDE0LjkyYy00LjUzLDAtOC4yMS0zLjY4LTguMjEtOC4yMVYxMS43NGMwLTQuNTMsMy42OC04LjIxLDguMjEtOC4yMWgyNy44OU00Mi44MiwyLjUzSDE0LjkyYy01LjA5LDAtOS4yMSw0LjEyLTkuMjEsOS4yMXYyNS4zMmMwLDUuMDksNC4xMiw5LjIxLDkuMjEsOS4yMWgyNy44OWM1LjA5LDAsOS4yMS00LjEyLDkuMjEtOS4yMVYxMS43NGMwLTUuMDktNC4xMi05LjIxLTkuMjEtOS4yMWgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjc0LDEuNTJjLS4xNCwwLS4yNi0uMTItLjI2LS4yNnMuMTItLjI2LjI2LS4yNmgxMi4zOWMuMTQsMCwuMjYuMTIuMjYuMjZzLS4xMi4yNi0uMjYuMjZoLTEyLjM5WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1LjEyLjUxaC0xMi4zOWMtLjQyLDAtLjc2LjM0LS43Ni43NnMuMzQuNzYuNzYuNzZoMTIuMzljLjQyLDAsLjc2LS4zNC43Ni0uNzZzLS4zNC0uNzYtLjc2LS43NmgwWiIvPgogICAgICA8L2c+CiAgICAgIDx0ZXh0IGNsYXNzPSJjbHMtMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41NyAxOC43OSkgc2NhbGUoMi4xNCAxKSI+PHRzcGFuIHg9IjAiIHk9IjAiPk1vYmlsZTwvdHNwYW4+PHRzcGFuIHg9Ii4wMyIgeT0iNi44NCI+RXZlbnRzPC90c3Bhbj48L3RleHQ+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjAxLDM0Ljg5YzMuMTQuNDgsOC4yNCwxLjAxLDE0LjM1LjUxLDEwLjQ1LS44NiwxNy4yMi00LjE5LDE5Ljc0LTUuNTYtLjgzLjc2LTYuNiw1Ljg4LTE3Ljk0LDYuODMtNy45OS42Ny0xNC4xNC0xLjEyLTE2LjE1LTEuNzdaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4="; + const menuIconURI = + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIGRhdGEtbmFtZT0iQ2FscXVlIDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3Ljg2IDQ5LjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZvbnQtZmFtaWx5OiBFcmFzSVRDLUJvbGQsICdFcmFzIEJvbGQgSVRDJzsKICAgICAgICBmb250LXNpemU6IDUuN3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCwgLmNscy01LCAuY2xzLTIgewogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICMxZmZmMzQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzMzMzsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iNTYuODYiIGhlaWdodD0iNDguMyIgcng9IjE3IiByeT0iMTciLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00MC4zNiwxYzkuMSwwLDE2LjUsNy40LDE2LjUsMTYuNXYxNC4zYzAsOS4xLTcuNCwxNi41LTE2LjUsMTYuNWgtMjIuODZjLTkuMSwwLTE2LjUtNy40LTE2LjUtMTYuNXYtMTQuM0MxLDguNCw4LjQsMSwxNy41LDFoMjIuODZNNDAuMzYsMGgtMjIuODZDNy44NCwwLDAsNy44NCwwLDE3LjV2MTQuM2MwLDkuNjYsNy44NCwxNy41LDE3LjUsMTcuNWgyMi44NmM5LjY2LDAsMTcuNS03Ljg0LDE3LjUtMTcuNXYtMTQuM0M1Ny44Niw3Ljg0LDUwLjAyLDAsNDAuMzYsMGgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iNi4yMSIgeT0iMy4wMyIgd2lkdGg9IjQ1LjMxIiBoZWlnaHQ9IjQyLjc0IiByeD0iOC43MSIgcnk9IjguNzEiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi44MiwzLjUzYzQuNTMsMCw4LjIxLDMuNjgsOC4yMSw4LjIxdjI1LjMyYzAsNC41My0zLjY4LDguMjEtOC4yMSw4LjIxSDE0LjkyYy00LjUzLDAtOC4yMS0zLjY4LTguMjEtOC4yMVYxMS43NGMwLTQuNTMsMy42OC04LjIxLDguMjEtOC4yMWgyNy44OU00Mi44MiwyLjUzSDE0LjkyYy01LjA5LDAtOS4yMSw0LjEyLTkuMjEsOS4yMXYyNS4zMmMwLDUuMDksNC4xMiw5LjIxLDkuMjEsOS4yMWgyNy44OWM1LjA5LDAsOS4yMS00LjEyLDkuMjEtOS4yMVYxMS43NGMwLTUuMDktNC4xMi05LjIxLTkuMjEtOS4yMWgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjc0LDEuNTJjLS4xNCwwLS4yNi0uMTItLjI2LS4yNnMuMTItLjI2LjI2LS4yNmgxMi4zOWMuMTQsMCwuMjYuMTIuMjYuMjZzLS4xMi4yNi0uMjYuMjZoLTEyLjM5WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1LjEyLjUxaC0xMi4zOWMtLjQyLDAtLjc2LjM0LS43Ni43NnMuMzQuNzYuNzYuNzZoMTIuMzljLjQyLDAsLjc2LS4zNC43Ni0uNzZzLS4zNC0uNzYtLjc2LS43NmgwWiIvPgogICAgICA8L2c+CiAgICAgIDx0ZXh0IGNsYXNzPSJjbHMtMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41NyAxOC43OSkgc2NhbGUoMi4xNCAxKSI+PHRzcGFuIHg9IjAiIHk9IjAiPk1vYmlsZTwvdHNwYW4+PHRzcGFuIHg9Ii4wMyIgeT0iNi44NCI+RXZlbnRzPC90c3Bhbj48L3RleHQ+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjAxLDM0Ljg5YzMuMTQuNDgsOC4yNCwxLjAxLDE0LjM1LjUxLDEwLjQ1LS44NiwxNy4yMi00LjE5LDE5Ljc0LTUuNTYtLjgzLjc2LTYuNiw1Ljg4LTE3Ljk0LDYuODMtNy45OS42Ny0xNC4xNC0xLjEyLTE2LjE1LTEuNzdaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4="; class MobileEvent { getInfo() { @@ -49,7 +50,7 @@ opcode: "getOrientation", blockType: Scratch.BlockType.REPORTER, text: "device orientation", - } + }, ], }; } @@ -141,7 +142,6 @@ getOrientation() { return window.orientation || screen.orientation.angle || "unknown"; } - } Scratch.extensions.register(new MobileEvent()); diff --git a/images/sesena0u0/mobile_events.png b/images/sesena0u0/mobile_events.png index 2adea91bb9e40189bab94c00f401dc17bdce130c..9ef5b513046a277413c1abe6e96dad913bfd197f 100644 GIT binary patch literal 13577 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 Mw2D-XgmLiy0@PqoV*mgE literal 67609 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 Date: Sat, 20 Jul 2024 23:37:46 +0300 Subject: [PATCH 3/5] swipe direction --- extensions/sesena0u0/mobile_events.js | 209 ++++++++++++++++++++++++-- 1 file changed, 193 insertions(+), 16 deletions(-) diff --git a/extensions/sesena0u0/mobile_events.js b/extensions/sesena0u0/mobile_events.js index fbc833e19e..2a97d92bb7 100644 --- a/extensions/sesena0u0/mobile_events.js +++ b/extensions/sesena0u0/mobile_events.js @@ -1,15 +1,15 @@ // Name: Mobile events // ID: Sesena0u0MobileEvents -// Description: Use swipe, click event and more in mobile. +// Description: Use swipe, tap event and more in mobile. // By: Sesena0u0 // License: MIT -// Version V.1.0.0 +// Version V.1.2.0 (function (Scratch) { "use strict"; const menuIconURI = - "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIGRhdGEtbmFtZT0iQ2FscXVlIDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3Ljg2IDQ5LjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZvbnQtZmFtaWx5OiBFcmFzSVRDLUJvbGQsICdFcmFzIEJvbGQgSVRDJzsKICAgICAgICBmb250LXNpemU6IDUuN3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCwgLmNscy01LCAuY2xzLTIgewogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICMxZmZmMzQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzMzMzsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iNTYuODYiIGhlaWdodD0iNDguMyIgcng9IjE3IiByeT0iMTciLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00MC4zNiwxYzkuMSwwLDE2LjUsNy40LDE2LjUsMTYuNXYxNC4zYzAsOS4xLTcuNCwxNi41LTE2LjUsMTYuNWgtMjIuODZjLTkuMSwwLTE2LjUtNy40LTE2LjUtMTYuNXYtMTQuM0MxLDguNCw4LjQsMSwxNy41LDFoMjIuODZNNDAuMzYsMGgtMjIuODZDNy44NCwwLDAsNy44NCwwLDE3LjV2MTQuM2MwLDkuNjYsNy44NCwxNy41LDE3LjUsMTcuNWgyMi44NmM5LjY2LDAsMTcuNS03Ljg0LDE3LjUtMTcuNXYtMTQuM0M1Ny44Niw3Ljg0LDUwLjAyLDAsNDAuMzYsMGgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iNi4yMSIgeT0iMy4wMyIgd2lkdGg9IjQ1LjMxIiBoZWlnaHQ9IjQyLjc0IiByeD0iOC43MSIgcnk9IjguNzEiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi44MiwzLjUzYzQuNTMsMCw4LjIxLDMuNjgsOC4yMSw4LjIxdjI1LjMyYzAsNC41My0zLjY4LDguMjEtOC4yMSw4LjIxSDE0LjkyYy00LjUzLDAtOC4yMS0zLjY4LTguMjEtOC4yMVYxMS43NGMwLTQuNTMsMy42OC04LjIxLDguMjEtOC4yMWgyNy44OU00Mi44MiwyLjUzSDE0LjkyYy01LjA5LDAtOS4yMSw0LjEyLTkuMjEsOS4yMXYyNS4zMmMwLDUuMDksNC4xMiw5LjIxLDkuMjEsOS4yMWgyNy44OWM1LjA5LDAsOS4yMS00LjEyLDkuMjEtOS4yMVYxMS43NGMwLTUuMDktNC4xMi05LjIxLTkuMjEtOS4yMWgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjc0LDEuNTJjLS4xNCwwLS4yNi0uMTItLjI2LS4yNnMuMTItLjI2LjI2LS4yNmgxMi4zOWMuMTQsMCwuMjYuMTIuMjYuMjZzLS4xMi4yNi0uMjYuMjZoLTEyLjM5WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1LjEyLjUxaC0xMi4zOWMtLjQyLDAtLjc2LjM0LS43Ni43NnMuMzQuNzYuNzYuNzZoMTIuMzljLjQyLDAsLjc2LS4zNC43Ni0uNzZzLS4zNC0uNzYtLjc2LS43NmgwWiIvPgogICAgICA8L2c+CiAgICAgIDx0ZXh0IGNsYXNzPSJjbHMtMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41NyAxOC43OSkgc2NhbGUoMi4xNCAxKSI+PHRzcGFuIHg9IjAiIHk9IjAiPk1vYmlsZTwvdHNwYW4+PHRzcGFuIHg9Ii4wMyIgeT0iNi44NCI+RXZlbnRzPC90c3Bhbj48L3RleHQ+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjAxLDM0Ljg5YzMuMTQuNDgsOC4yNCwxLjAxLDE0LjM1LjUxLDEwLjQ1LS44NiwxNy4yMi00LjE5LDE5Ljc0LTUuNTYtLjgzLjc2LTYuNiw1Ljg4LTE3Ljk0LDYuODMtNy45OS42Ny0xNC4xNC0xLjEyLTE2LjE1LTEuNzdaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4="; + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIGRhdGEtbmFtZT0iQ2FscXVlIDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3Ljg2IDQ5LjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZvbnQtZmFtaWx5OiBFcmFzSVRDLUJvbGQsICdFcmFzIEJvbGQgSVRDJzsKICAgICAgICBmb250LXNpemU6IDUuN3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCwgLmNscy01LCAuY2xzLTIgewogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICMxZmZmMzQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzMzMzsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iNTYuODYiIGhlaWdodD0iNDguMyIgcng9IjE3IiByeT0iMTciLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00MC4zNiwxYzkuMSwwLDE2LjUsNy40LDE2LjUsMTYuNXYxNC4zYzAsOS4xLTcuNCwxNi41LTE2LjUsMTYuNWgtMjIuODZjLTkuMSwwLTE2LjUtNy40LTE2LjUtMTYuNXYtMTQuM0MxLDguNCw4LjQsMSwxNy41LDFoMjIuODZNNDAuMzYsMGgtMjIuODZDNy44NCwwLDAsNy44NCwwLDE3LjV2MTQuM2MwLDkuNjYsNy44NCwxNy41LDE3LjUsMTcuNWgyMi44NmM5LjY2LDAsMTcuNS03Ljg0LDE3LjUtMTcuNXYtMTQuM0M1Ny44Niw3Ljg0LDUwLjAyLDAsNDAuMzYsMGgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iNi4yMSIgeT0iMy4wMyIgd2lkdGg9IjQ1LjMxIiBoZWlnaHQ9IjQyLjc0IiByeD0iOC43MSIgcnk9IjguNzEiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi44MiwzLjUzYzQuNTMsMCw4LjIxLDMuNjgsOC4yMSw4LjIxdjI1LjMyYzAsNC41My0zLjY4LDguMjEtOC4yMSw4LjIxSDE0LjkyYy00LjUzLDAtOC4yMS0zLjY4LTguMjEtOC4yMVYxMS43NGMwLTQuNTMsMy42OC04LjIxLDguMjEtOC4yMWgyNy44OU00Mi44MiwyLjUzSDE0LjkyYy01LjA5LDAtOS4yMSw0LjEyLTkuMjEsOS4yMXYyNS4zMmMwLDUuMDksNC4xMiw5LjIxLDkuMjEsOS4yMWgyNy44OWM1LjA5LDAsOS4yMS00LjEyLDkuMjEtOS4yMVYxMS43NGMwLTUuMDktNC4xMi05LjIxLTkuMjEtOS4yMWgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjc0LDEuNTJjLS4xNCwwLS4yNi0uMTItLjI2LS4yNnMuMTItLjI2LjI2LS4yNmgxMi4zOWMuMTQsMCwuMjYuMTIuMjYuMjZzLS4xMi4yNi0uMjYuMjZoLTEyLjM5WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1LjEyLjUxaC0xMi4zOWMtLjQyLDAtLjc2LjM0LS43Ni43NnMuMzQuNzYuNzYuNzZoMTIuMzljLjQyLDAsLjc2LS4zNC43Ni0uNzZzLS4zNC0uNzYtLjc2LS43NmgwWiIvPgogICAgICA8L2c+CiAgICAgIDx0ZXh0IGNsYXNzPSJjbHMtMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41NyAxOC43OSkgc2NhbGUoMi4xNCAxKSI+PHRzcGFuIHg9IjAiIHk9IjAiPk1vYmlsZTwvdHNwYW4+PHRzcGFuIHg9Ii4wMyIgeT0iNi44NCI+RXZlbnRzPC90c3Bhbj48L3RleHQ+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjAxLDM0Ljg5YzMuMTQuNDgsOC4yNCwxLjAxLDE0LjM1LjUxLDEwLjQ1LS44NiwxNy4yMi00LjE5LDE5Ljc0LTUuNTYtLjgzLjc2LTYuNiw1Ljg4LTE3Ljk0LDYuODMtNy45OS42Ny0xNC4xNC0xLjEyLTE2LjE1LTEuNzdaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4="; class MobileEvent { getInfo() { @@ -27,14 +27,24 @@ text: "is swipe detected?", }, { - opcode: "checkClick", + opcode: "checkTap", blockType: Scratch.BlockType.BOOLEAN, - text: "is click detected?", + text: "is tap detected?", }, { - opcode: "isMobile", + opcode: "checkLongPress", blockType: Scratch.BlockType.BOOLEAN, - text: "is mobile device?", + text: "is long press detected?", + }, + { + opcode: "checkPinchOpen", + blockType: Scratch.BlockType.BOOLEAN, + text: "is pinch open detected?", + }, + { + opcode: "checkPinchClose", + blockType: Scratch.BlockType.BOOLEAN, + text: "is pinch close detected?", }, { opcode: "getTouchCount", @@ -46,24 +56,67 @@ blockType: Scratch.BlockType.BOOLEAN, text: "is landscape?", }, + { + opcode: "getSwipeDirection", + blockType: Scratch.BlockType.REPORTER, + text: "swipe direction", + }, { opcode: "getOrientation", blockType: Scratch.BlockType.REPORTER, text: "device orientation", }, + { + opcode: "isMobile", + blockType: Scratch.BlockType.BOOLEAN, + text: "is mobile device?", + }, + "---", + { + opcode: "whenSwipe", + blockType: Scratch.BlockType.HAT, + text: "when swipe", + }, + { + opcode: "whenTap", + blockType: Scratch.BlockType.HAT, + text: "when tap", + }, + { + opcode: "whenLongPress", + blockType: Scratch.BlockType.HAT, + text: "when long press", + }, + { + opcode: "whenPinchOpen", + blockType: Scratch.BlockType.HAT, + text: "when pinch open", + }, + { + opcode: "whenPinchClose", + blockType: Scratch.BlockType.HAT, + text: "when pinch close", + }, ], }; } constructor() { this.isSwipe = false; - this.isClick = false; + this.isTap = false; + this.isLongPress = false; + this.isPinchOpen = false; + this.isPinchClose = false; this.startX = 0; this.startY = 0; this.startTime = 0; + this.startDistances = []; + this.currentDistances = []; this.touchThreshold = 50; this.timeThreshold = 300; + this.longPressThreshold = 500; // Temps en ms pour considérer un long press this.touchCount = 0; + this.swipeDirection = 0; // Direction du swipe en degrés document.addEventListener( "touchstart", @@ -75,6 +128,11 @@ (e) => this.handleTouchEnd(e), false ); + document.addEventListener( + "touchmove", + (e) => this.handleTouchMove(e), + false + ); window.addEventListener( "deviceorientation", (e) => this.handleOrientation(e), @@ -89,11 +147,58 @@ this.startY = touch.screenY; this.startTime = new Date().getTime(); this.isSwipe = false; - this.isClick = false; + this.isTap = false; + this.isLongPress = false; + this.isPinchOpen = false; + this.isPinchClose = false; + this.longPressTimeout = setTimeout(() => { + this.isLongPress = true; + }, this.longPressThreshold); + + // Stocker les distances initiales pour les pincements + if (this.touchCount >= 2) { + this.startDistances = [this.getDistance(e.touches)]; + } + } + + handleTouchMove(e) { + const touch = e.touches[0]; + const diffX = touch.screenX - this.startX; + const diffY = touch.screenY - this.startY; + const diffTime = new Date().getTime() - this.startTime; + + if (diffTime >= this.longPressThreshold) { + clearTimeout(this.longPressTimeout); + this.isLongPress = true; + } else if ( + Math.abs(diffX) > this.touchThreshold || + Math.abs(diffY) > this.touchThreshold + ) { + clearTimeout(this.longPressTimeout); + } + + // Détecter les pincements + if (e.touches.length >= 2) { + this.currentDistances = [this.getDistance(e.touches)]; + const distanceDiff = this.currentDistances[0] - this.startDistances[0]; + + if (distanceDiff > this.touchThreshold) { + this.isPinchOpen = true; + } else if (distanceDiff < -this.touchThreshold) { + this.isPinchClose = true; + } + } } handleTouchEnd(e) { + clearTimeout(this.longPressTimeout); this.touchCount = e.touches.length; + + if (this.touchCount > 0) { + // Si d'autres touches sont encore présentes, ne pas réinitialiser isLongPress + return; + } + const touch = e.changedTouches[0]; const diffX = touch.screenX - this.startX; const diffY = touch.screenY - this.startY; @@ -105,26 +210,74 @@ Math.abs(diffY) > this.touchThreshold ) { this.isSwipe = true; + this.calculateSwipeDirection(diffX, diffY); } else { - this.isClick = true; + this.isTap = true; } + } else { + this.isLongPress = false; } + + // Réinitialiser les distances de pincement après la fin de l'événement tactile + this.startDistances = []; + this.currentDistances = []; } handleOrientation(e) { - this.orientation = e.alpha; + this.orientation = { + alpha: e.alpha, + beta: e.beta, + gamma: e.gamma, + }; + } + + getDistance(touches) { + const dx = touches[0].screenX - touches[1].screenX; + const dy = touches[0].screenY - touches[1].screenY; + return Math.sqrt(dx * dx + dy * dy); } + calculateSwipeDirection(diffX, diffY) { + let angle = Math.atan2(diffY, diffX); + + angle = angle * (180 / Math.PI); + angle = (angle + 90) % 360; + if (angle < 0) { + angle += 360; + } + + this.swipeDirection = angle; + } + + checkSwipe() { const swipeDetected = this.isSwipe; this.isSwipe = false; return swipeDetected; } - checkClick() { - const clickDetected = this.isClick; - this.isClick = false; - return clickDetected; + checkTap() { + const tapDetected = this.isTap; + this.isTap = false; + return tapDetected; + } + + checkLongPress() { + const longPressDetected = this.isLongPress; + this.isLongPress = false; + return longPressDetected; + } + + checkPinchOpen() { + const pinchOpenDetected = this.isPinchOpen; + this.isPinchOpen = false; + return pinchOpenDetected; + } + + checkPinchClose() { + const pinchCloseDetected = this.isPinchClose; + this.isPinchClose = false; + return pinchCloseDetected; } isMobile() { @@ -140,7 +293,31 @@ } getOrientation() { - return window.orientation || screen.orientation.angle || "unknown"; + return window.orientation || screen.orientation.angle; + } + + getSwipeDirection() { + return this.swipeDirection; + } + + whenSwipe() { + return this.isSwipe; + } + + whenTap() { + return this.isTap; + } + + whenLongPress() { + return this.isLongPress; + } + + whenPinchOpen() { + return this.isPinchOpen; + } + + whenPinchClose() { + return this.isPinchClose; } } From 4685548a9e909481c09107f4df6e01cc6f0f07e8 Mon Sep 17 00:00:00 2001 From: sesena Date: Sat, 20 Jul 2024 23:39:30 +0300 Subject: [PATCH 4/5] swipe direction --- extensions/sesena0u0/mobile_events.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/extensions/sesena0u0/mobile_events.js b/extensions/sesena0u0/mobile_events.js index 2a97d92bb7..72cf8c9b86 100644 --- a/extensions/sesena0u0/mobile_events.js +++ b/extensions/sesena0u0/mobile_events.js @@ -9,7 +9,7 @@ "use strict"; const menuIconURI = - "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIGRhdGEtbmFtZT0iQ2FscXVlIDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3Ljg2IDQ5LjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZvbnQtZmFtaWx5OiBFcmFzSVRDLUJvbGQsICdFcmFzIEJvbGQgSVRDJzsKICAgICAgICBmb250LXNpemU6IDUuN3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCwgLmNscy01LCAuY2xzLTIgewogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICMxZmZmMzQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzMzMzsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iNTYuODYiIGhlaWdodD0iNDguMyIgcng9IjE3IiByeT0iMTciLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00MC4zNiwxYzkuMSwwLDE2LjUsNy40LDE2LjUsMTYuNXYxNC4zYzAsOS4xLTcuNCwxNi41LTE2LjUsMTYuNWgtMjIuODZjLTkuMSwwLTE2LjUtNy40LTE2LjUtMTYuNXYtMTQuM0MxLDguNCw4LjQsMSwxNy41LDFoMjIuODZNNDAuMzYsMGgtMjIuODZDNy44NCwwLDAsNy44NCwwLDE3LjV2MTQuM2MwLDkuNjYsNy44NCwxNy41LDE3LjUsMTcuNWgyMi44NmM5LjY2LDAsMTcuNS03Ljg0LDE3LjUtMTcuNXYtMTQuM0M1Ny44Niw3Ljg0LDUwLjAyLDAsNDAuMzYsMGgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iNi4yMSIgeT0iMy4wMyIgd2lkdGg9IjQ1LjMxIiBoZWlnaHQ9IjQyLjc0IiByeD0iOC43MSIgcnk9IjguNzEiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi44MiwzLjUzYzQuNTMsMCw4LjIxLDMuNjgsOC4yMSw4LjIxdjI1LjMyYzAsNC41My0zLjY4LDguMjEtOC4yMSw4LjIxSDE0LjkyYy00LjUzLDAtOC4yMS0zLjY4LTguMjEtOC4yMVYxMS43NGMwLTQuNTMsMy42OC04LjIxLDguMjEtOC4yMWgyNy44OU00Mi44MiwyLjUzSDE0LjkyYy01LjA5LDAtOS4yMSw0LjEyLTkuMjEsOS4yMXYyNS4zMmMwLDUuMDksNC4xMiw5LjIxLDkuMjEsOS4yMWgyNy44OWM1LjA5LDAsOS4yMS00LjEyLDkuMjEtOS4yMVYxMS43NGMwLTUuMDktNC4xMi05LjIxLTkuMjEtOS4yMWgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjc0LDEuNTJjLS4xNCwwLS4yNi0uMTItLjI2LS4yNnMuMTItLjI2LjI2LS4yNmgxMi4zOWMuMTQsMCwuMjYuMTIuMjYuMjZzLS4xMi4yNi0uMjYuMjZoLTEyLjM5WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1LjEyLjUxaC0xMi4zOWMtLjQyLDAtLjc2LjM0LS43Ni43NnMuMzQuNzYuNzYuNzZoMTIuMzljLjQyLDAsLjc2LS4zNC43Ni0uNzZzLS4zNC0uNzYtLjc2LS43NmgwWiIvPgogICAgICA8L2c+CiAgICAgIDx0ZXh0IGNsYXNzPSJjbHMtMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41NyAxOC43OSkgc2NhbGUoMi4xNCAxKSI+PHRzcGFuIHg9IjAiIHk9IjAiPk1vYmlsZTwvdHNwYW4+PHRzcGFuIHg9Ii4wMyIgeT0iNi44NCI+RXZlbnRzPC90c3Bhbj48L3RleHQ+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjAxLDM0Ljg5YzMuMTQuNDgsOC4yNCwxLjAxLDE0LjM1LjUxLDEwLjQ1LS44NiwxNy4yMi00LjE5LDE5Ljc0LTUuNTYtLjgzLjc2LTYuNiw1Ljg4LTE3Ljk0LDYuODMtNy45OS42Ny0xNC4xNC0xLjEyLTE2LjE1LTEuNzdaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4="; + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIGRhdGEtbmFtZT0iQ2FscXVlIDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3Ljg2IDQ5LjMiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZvbnQtZmFtaWx5OiBFcmFzSVRDLUJvbGQsICdFcmFzIEJvbGQgSVRDJzsKICAgICAgICBmb250LXNpemU6IDUuN3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuY2xzLTMsIC5jbHMtNCwgLmNscy01LCAuY2xzLTIgewogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CgogICAgICAuY2xzLTQgewogICAgICAgIGZpbGw6ICMxZmZmMzQ7CiAgICAgIH0KCiAgICAgIC5jbHMtNSB7CiAgICAgICAgZmlsbDogIzMzMzsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkNhbHF1ZV8xLTIiIGRhdGEtbmFtZT0iQ2FscXVlIDEiPgogICAgPGc+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iNTYuODYiIGhlaWdodD0iNDguMyIgcng9IjE3IiByeT0iMTciLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00MC4zNiwxYzkuMSwwLDE2LjUsNy40LDE2LjUsMTYuNXYxNC4zYzAsOS4xLTcuNCwxNi41LTE2LjUsMTYuNWgtMjIuODZjLTkuMSwwLTE2LjUtNy40LTE2LjUtMTYuNXYtMTQuM0MxLDguNCw4LjQsMSwxNy41LDFoMjIuODZNNDAuMzYsMGgtMjIuODZDNy44NCwwLDAsNy44NCwwLDE3LjV2MTQuM2MwLDkuNjYsNy44NCwxNy41LDE3LjUsMTcuNWgyMi44NmM5LjY2LDAsMTcuNS03Ljg0LDE3LjUtMTcuNXYtMTQuM0M1Ny44Niw3Ljg0LDUwLjAyLDAsNDAuMzYsMGgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iNi4yMSIgeT0iMy4wMyIgd2lkdGg9IjQ1LjMxIiBoZWlnaHQ9IjQyLjc0IiByeD0iOC43MSIgcnk9IjguNzEiLz4KICAgICAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi44MiwzLjUzYzQuNTMsMCw4LjIxLDMuNjgsOC4yMSw4LjIxdjI1LjMyYzAsNC41My0zLjY4LDguMjEtOC4yMSw4LjIxSDE0LjkyYy00LjUzLDAtOC4yMS0zLjY4LTguMjEtOC4yMVYxMS43NGMwLTQuNTMsMy42OC04LjIxLDguMjEtOC4yMWgyNy44OU00Mi44MiwyLjUzSDE0LjkyYy01LjA5LDAtOS4yMSw0LjEyLTkuMjEsOS4yMXYyNS4zMmMwLDUuMDksNC4xMiw5LjIxLDkuMjEsOS4yMWgyNy44OWM1LjA5LDAsOS4yMS00LjEyLDkuMjEtOS4yMVYxMS43NGMwLTUuMDktNC4xMi05LjIxLTkuMjEtOS4yMWgwWiIvPgogICAgICA8L2c+CiAgICAgIDxnPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjc0LDEuNTJjLS4xNCwwLS4yNi0uMTItLjI2LS4yNnMuMTItLjI2LjI2LS4yNmgxMi4zOWMuMTQsMCwuMjYuMTIuMjYuMjZzLS4xMi4yNi0uMjYuMjZoLTEyLjM5WiIvPgogICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM1LjEyLjUxaC0xMi4zOWMtLjQyLDAtLjc2LjM0LS43Ni43NnMuMzQuNzYuNzYuNzZoMTIuMzljLjQyLDAsLjc2LS4zNC43Ni0uNzZzLS4zNC0uNzYtLjc2LS43NmgwWiIvPgogICAgICA8L2c+CiAgICAgIDx0ZXh0IGNsYXNzPSJjbHMtMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNy41NyAxOC43OSkgc2NhbGUoMi4xNCAxKSI+PHRzcGFuIHg9IjAiIHk9IjAiPk1vYmlsZTwvdHNwYW4+PHRzcGFuIHg9Ii4wMyIgeT0iNi44NCI+RXZlbnRzPC90c3Bhbj48L3RleHQ+CiAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEzLjAxLDM0Ljg5YzMuMTQuNDgsOC4yNCwxLjAxLDE0LjM1LjUxLDEwLjQ1LS44NiwxNy4yMi00LjE5LDE5Ljc0LTUuNTYtLjgzLjc2LTYuNiw1Ljg4LTE3Ljk0LDYuODMtNy45OS42Ny0xNC4xNC0xLjEyLTE2LjE1LTEuNzdaIi8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4="; class MobileEvent { getInfo() { @@ -239,16 +239,15 @@ calculateSwipeDirection(diffX, diffY) { let angle = Math.atan2(diffY, diffX); - + angle = angle * (180 / Math.PI); angle = (angle + 90) % 360; if (angle < 0) { angle += 360; } - + this.swipeDirection = angle; } - checkSwipe() { const swipeDetected = this.isSwipe; From 62753abb04b9f73aabcc1b2ba221beea8cfa9c51 Mon Sep 17 00:00:00 2001 From: sesena Date: Wed, 24 Jul 2024 16:54:59 +0300 Subject: [PATCH 5/5] device size and touch position --- extensions/sesena0u0/mobile_events.js | 228 +++++++++++++++++++------- 1 file changed, 166 insertions(+), 62 deletions(-) diff --git a/extensions/sesena0u0/mobile_events.js b/extensions/sesena0u0/mobile_events.js index 72cf8c9b86..3487694d2c 100644 --- a/extensions/sesena0u0/mobile_events.js +++ b/extensions/sesena0u0/mobile_events.js @@ -20,6 +20,12 @@ color2: "#50aa50", color3: "#50aa50", menuIconURI, + menus: { + xOrY: [ + { text: "x", value: "x" }, + { text: "y", value: "y" }, + ], + }, blocks: [ { opcode: "checkSwipe", @@ -46,20 +52,31 @@ blockType: Scratch.BlockType.BOOLEAN, text: "is pinch close detected?", }, - { - opcode: "getTouchCount", - blockType: Scratch.BlockType.REPORTER, - text: "number of touches", - }, { opcode: "isLandscape", blockType: Scratch.BlockType.BOOLEAN, text: "is landscape?", }, { - opcode: "getSwipeDirection", + opcode: "isMobile", + blockType: Scratch.BlockType.BOOLEAN, + text: "is mobile device?", + }, + { + opcode: "isTouchSupported", + blockType: Scratch.BlockType.BOOLEAN, + text: "is touchscreen supported?", + }, + "---", + { + opcode: "getScreenWidth", blockType: Scratch.BlockType.REPORTER, - text: "swipe direction", + text: "screen width", + }, + { + opcode: "getScreenHeight", + blockType: Scratch.BlockType.REPORTER, + text: "screen height", }, { opcode: "getOrientation", @@ -67,9 +84,30 @@ text: "device orientation", }, { - opcode: "isMobile", - blockType: Scratch.BlockType.BOOLEAN, - text: "is mobile device?", + opcode: "getTouchCount", + blockType: Scratch.BlockType.REPORTER, + text: "number of touches", + }, + { + opcode: "getTouchPosition", + blockType: Scratch.BlockType.REPORTER, + text: "position [XY] of touch [T]", + arguments: { + T: { + type: Scratch.ArgumentType.NUMBER, + defaultValue: 1, + }, + XY: { + type: Scratch.ArgumentType.STRING, + menu: "xOrY", + defaultValue: "x", + }, + }, + }, + { + opcode: "getSwipeDirection", + blockType: Scratch.BlockType.REPORTER, + text: "swipe direction", }, "---", { @@ -114,9 +152,9 @@ this.currentDistances = []; this.touchThreshold = 50; this.timeThreshold = 300; - this.longPressThreshold = 500; // Temps en ms pour considérer un long press + this.longPressThreshold = 500; this.touchCount = 0; - this.swipeDirection = 0; // Direction du swipe en degrés + this.swipeDirection = 0; document.addEventListener( "touchstart", @@ -142,6 +180,7 @@ handleTouchStart(e) { this.touchCount = e.touches.length; + this.touchPositions = Array.from(e.touches); const touch = e.touches[0]; this.startX = touch.screenX; this.startY = touch.screenY; @@ -155,37 +194,40 @@ this.isLongPress = true; }, this.longPressThreshold); - // Stocker les distances initiales pour les pincements if (this.touchCount >= 2) { this.startDistances = [this.getDistance(e.touches)]; } } handleTouchMove(e) { - const touch = e.touches[0]; - const diffX = touch.screenX - this.startX; - const diffY = touch.screenY - this.startY; - const diffTime = new Date().getTime() - this.startTime; - - if (diffTime >= this.longPressThreshold) { - clearTimeout(this.longPressTimeout); - this.isLongPress = true; - } else if ( - Math.abs(diffX) > this.touchThreshold || - Math.abs(diffY) > this.touchThreshold - ) { - clearTimeout(this.longPressTimeout); - } + this.touchPositions = Array.from(e.touches); + + if (e.touches.length > 0) { + const touch = e.touches[0]; + const diffX = touch.screenX - this.startX; + const diffY = touch.screenY - this.startY; + const diffTime = new Date().getTime() - this.startTime; + + if (diffTime >= this.longPressThreshold) { + clearTimeout(this.longPressTimeout); + this.isLongPress = true; + } else if ( + Math.abs(diffX) > this.touchThreshold || + Math.abs(diffY) > this.touchThreshold + ) { + clearTimeout(this.longPressTimeout); + } - // Détecter les pincements - if (e.touches.length >= 2) { - this.currentDistances = [this.getDistance(e.touches)]; - const distanceDiff = this.currentDistances[0] - this.startDistances[0]; + if (e.touches.length >= 2) { + this.currentDistances = [this.getDistance(e.touches)]; + const distanceDiff = + this.currentDistances[0] - this.startDistances[0]; - if (distanceDiff > this.touchThreshold) { - this.isPinchOpen = true; - } else if (distanceDiff < -this.touchThreshold) { - this.isPinchClose = true; + if (distanceDiff > this.touchThreshold) { + this.isPinchOpen = true; + } else if (distanceDiff < -this.touchThreshold) { + this.isPinchClose = true; + } } } } @@ -193,34 +235,31 @@ handleTouchEnd(e) { clearTimeout(this.longPressTimeout); this.touchCount = e.touches.length; - - if (this.touchCount > 0) { - // Si d'autres touches sont encore présentes, ne pas réinitialiser isLongPress - return; - } - - const touch = e.changedTouches[0]; - const diffX = touch.screenX - this.startX; - const diffY = touch.screenY - this.startY; - const diffTime = new Date().getTime() - this.startTime; - - if (diffTime < this.timeThreshold) { - if ( - Math.abs(diffX) > this.touchThreshold || - Math.abs(diffY) > this.touchThreshold - ) { - this.isSwipe = true; - this.calculateSwipeDirection(diffX, diffY); + this.touchPositions = Array.from(e.touches); + + if (this.touchCount === 0) { + const touch = e.changedTouches[0]; + const diffX = touch.screenX - this.startX; + const diffY = touch.screenY - this.startY; + const diffTime = new Date().getTime() - this.startTime; + + if (diffTime < this.timeThreshold) { + if ( + Math.abs(diffX) > this.touchThreshold || + Math.abs(diffY) > this.touchThreshold + ) { + this.isSwipe = true; + this.calculateSwipeDirection(diffX, diffY); + } else { + this.isTap = true; + } } else { - this.isTap = true; + this.isLongPress = false; } - } else { - this.isLongPress = false; - } - // Réinitialiser les distances de pincement après la fin de l'événement tactile - this.startDistances = []; - this.currentDistances = []; + this.startDistances = []; + this.currentDistances = []; + } } handleOrientation(e) { @@ -246,7 +285,7 @@ angle += 360; } - this.swipeDirection = angle; + this.swipeDirection = Math.round(angle); } checkSwipe() { @@ -280,7 +319,11 @@ } isMobile() { - return /Mobi|Android/i.test(navigator.userAgent); + return /Mobi|Android|iPad|iPhone/i.test(navigator.userAgent); + } + + isTouchSupported() { + return "ontouchstart" in window || navigator.maxTouchPoints > 0; } getTouchCount() { @@ -318,6 +361,67 @@ whenPinchClose() { return this.isPinchClose; } + + getScreenWidth() { + return window.innerWidth; + } + + getScreenHeight() { + return window.innerHeight; + } + + boundToProjectX(clientX) { + const bounds = this.getCanvasBounds(); + const min = -Scratch.vm.runtime.stageWidth / 2; + const max = Scratch.vm.runtime.stageWidth / 2; + return this.specifiPlace( + min, + this.map(clientX, bounds.left, bounds.right, min, max), + max + ); + } + + boundToProjectY(clientY) { + const bounds = this.getCanvasBounds(); + const min = -Scratch.vm.runtime.stageHeight / 2; + const max = Scratch.vm.runtime.stageHeight / 2; + return this.specifiPlace( + min, + this.map(clientY, bounds.bottom, bounds.top, min, max), + max + ); + } + + getCanvasBounds() { + return document.querySelector("canvas").getBoundingClientRect(); + } + + map(value, inMin, inMax, outMin, outMax) { + return ((value - inMin) / (inMax - inMin)) * (outMax - outMin) + outMin; + } + + specifiPlace(value, min, max) { + return Math.max(min, Math.min(max, value)); + } + + getTouchPosition(args) { + const touchIndex = parseInt(args.T) - 1; + const coordinate = args.XY; + + if (touchIndex < 0 || touchIndex >= this.touchCount) { + return 0; + } + + const touch = this.touchPositions[touchIndex]; + + if (coordinate === "x") { + return touch ? Math.round(this.boundToProjectX(touch.clientX)) : 0; + } else if (coordinate === "y") { + return touch ? Math.round(this.boundToProjectY(touch.clientY)) : 0; + } + + return 0; + } } Scratch.extensions.register(new MobileEvent());