From d6f72e17f7b1d649514c6258e63490a05f19ece5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucio=20Andr=C3=A9s=20Illanes=20Albornoz?= Date: Thu, 11 Jan 2018 23:26:36 +0100 Subject: [PATCH] MiRCART{CanvasInterface,Frame}.py: complete set of {brush,canvas} size operations. assets/tool{De,In}cr{Brush,Canvas}{H{,W},W}.png: added/updated. --- MiRCARTCanvasInterface.py | 48 ++++++++++++++++++++++++++++-------- MiRCARTFrame.py | 43 +++++++++++++++++++++----------- assets/toolDecrBrushH.png | Bin 0 -> 271 bytes assets/toolDecrBrushHW.png | Bin 0 -> 277 bytes assets/toolDecrBrushW.png | Bin 0 -> 250 bytes assets/toolDecrCanvasH.png | Bin 271 -> 265 bytes assets/toolDecrCanvasHW.png | Bin 0 -> 289 bytes assets/toolDecrCanvasW.png | Bin 250 -> 249 bytes assets/toolIncrBrushH.png | Bin 0 -> 236 bytes assets/toolIncrBrushHW.png | Bin 0 -> 290 bytes assets/toolIncrBrushW.png | Bin 0 -> 232 bytes assets/toolIncrCanvasH.png | Bin 236 -> 246 bytes assets/toolIncrCanvasHW.png | Bin 0 -> 282 bytes assets/toolIncrCanvasW.png | Bin 232 -> 236 bytes 14 files changed, 67 insertions(+), 24 deletions(-) create mode 100644 assets/toolDecrBrushH.png create mode 100644 assets/toolDecrBrushHW.png create mode 100644 assets/toolDecrBrushW.png create mode 100644 assets/toolDecrCanvasHW.png create mode 100644 assets/toolIncrBrushH.png create mode 100644 assets/toolIncrBrushHW.png create mode 100644 assets/toolIncrBrushW.png create mode 100644 assets/toolIncrCanvasHW.png diff --git a/MiRCARTCanvasInterface.py b/MiRCARTCanvasInterface.py index c9f932b..c95a524 100644 --- a/MiRCARTCanvasInterface.py +++ b/MiRCARTCanvasInterface.py @@ -106,12 +106,21 @@ class MiRCARTCanvasInterface(): def canvasCut(self, event): pass # }}} - # {{{ canvasDecrBrush(self, event): XXX - def canvasDecrBrush(self, event): - if self.parentCanvas.brushSize[0] > 1 \ - and self.parentCanvas.brushSize[1] > 1: - self.parentCanvas.brushSize = \ - [a-1 for a in self.parentCanvas.brushSize] + # {{{ canvasDecrBrushHeight(self, event): XXX + def canvasDecrBrushHeight(self, event): + if self.parentCanvas.brushSize[1] > 1: + self.parentCanvas.brushSize[1] -= 1 + self.parentFrame.onCanvasUpdate(brushSize=self.parentCanvas.brushSize) + # }}} + # {{{ canvasDecrBrushHeightWidth(self, event): XXX + def canvasDecrBrushHeightWidth(self, event): + self.canvasDecrBrushHeight(event) + self.canvasDecrBrushWidth(event) + # }}} + # {{{ canvasDecrBrushWidth(self, event): XXX + def canvasDecrBrushWidth(self, event): + if self.parentCanvas.brushSize[0] > 1: + self.parentCanvas.brushSize[0] -= 1 self.parentFrame.onCanvasUpdate(brushSize=self.parentCanvas.brushSize) # }}} # {{{ canvasDecrCanvasHeight(self, event): XXX @@ -121,6 +130,11 @@ class MiRCARTCanvasInterface(): self.parentCanvas.canvasSize[0], \ self.parentCanvas.canvasSize[1]-1]) # }}} + # {{{ canvasDecrCanvasHeightWidth(self, event): XXX + def canvasDecrCanvasHeightWidth(self, event): + self.canvasDecrCanvasHeight(event) + self.canvasDecrCanvasWidth(event) + # }}} # {{{ canvasDecrCanvasWidth(self, event): XXX def canvasDecrCanvasWidth(self, event): if self.parentCanvas.canvasSize[0] > 1: @@ -197,10 +211,19 @@ class MiRCARTCanvasInterface(): wx.MessageBox("Failed to export to Pastebin: " + pasteResult, \ "Export to Pastebin", wx.OK|wx.ICON_EXCLAMATION) # }}} - # {{{ canvasIncrBrush(self, event): XXX - def canvasIncrBrush(self, event): - self.parentCanvas.brushSize = \ - [a+1 for a in self.parentCanvas.brushSize] + # {{{ canvasIncrBrushHeight(self, event): XXX + def canvasIncrBrushHeight(self, event): + self.parentCanvas.brushSize[1] += 1 + self.parentFrame.onCanvasUpdate(brushSize=self.parentCanvas.brushSize) + # }}} + # {{{ canvasIncrBrushHeightWidth(self, event): XXX + def canvasIncrBrushHeightWidth(self, event): + self.canvasIncrBrushHeight(event) + self.canvasIncrBrushWidth(event) + # }}} + # {{{ canvasIncrBrushWidth(self, event): XXX + def canvasIncrBrushWidth(self, event): + self.parentCanvas.brushSize[0] += 1 self.parentFrame.onCanvasUpdate(brushSize=self.parentCanvas.brushSize) # }}} # {{{ canvasIncrCanvasHeight(self, event): XXX @@ -209,6 +232,11 @@ class MiRCARTCanvasInterface(): self.parentCanvas.canvasSize[0], \ self.parentCanvas.canvasSize[1]+1]) # }}} + # {{{ canvasIncrCanvasHeightWidth(self, event): XXX + def canvasIncrCanvasHeightWidth(self, event): + self.canvasIncrCanvasHeight(event) + self.canvasIncrCanvasWidth(event) + # }}} # {{{ canvasIncrCanvasWidth(self, event): XXX def canvasIncrCanvasWidth(self, event): self._updateCanvasSize([ \ diff --git a/MiRCARTFrame.py b/MiRCARTFrame.py index 9ac8738..3a3d3bf 100644 --- a/MiRCARTFrame.py +++ b/MiRCARTFrame.py @@ -55,18 +55,30 @@ class MiRCARTFrame(MiRCARTGeneralFrame): CID_PASTE = [0x10c, TID_COMMAND, "Paste", "&Paste", ["", wx.ART_PASTE], None, False, MiRCARTCanvasInterface.canvasPaste] CID_DELETE = [0x10d, TID_COMMAND, "Delete", "De&lete", ["", wx.ART_DELETE], None, False, MiRCARTCanvasInterface.canvasDelete] CID_INCRW_CANVAS = [0x10e, TID_COMMAND, "Increase canvas width", \ - "Increase canvas &width", ["toolIncrCanvasW.png"], [wx.ACCEL_ALT, ord("D")], None, MiRCARTCanvasInterface.canvasIncrCanvasWidth] + "Increase canvas width", ["toolIncrCanvasW.png"], None, None, MiRCARTCanvasInterface.canvasIncrCanvasWidth] CID_DECRW_CANVAS = [0x10f, TID_COMMAND, "Decrease canvas width", \ - "Decrease canvas w&idth", ["toolDecrCanvasW.png"], [wx.ACCEL_ALT, ord("A")], None, MiRCARTCanvasInterface.canvasDecrCanvasWidth] + "Decrease canvas width", ["toolDecrCanvasW.png"], None, None, MiRCARTCanvasInterface.canvasDecrCanvasWidth] CID_INCRH_CANVAS = [0x110, TID_COMMAND, "Increase canvas height", \ - "Increase canvas &height", ["toolIncrCanvasH.png"], [wx.ACCEL_ALT, ord("S")], None, MiRCARTCanvasInterface.canvasIncrCanvasHeight] + "Increase canvas height", ["toolIncrCanvasH.png"], None, None, MiRCARTCanvasInterface.canvasIncrCanvasHeight] CID_DECRH_CANVAS = [0x111, TID_COMMAND, "Decrease canvas height", \ - "Decrease canvas h&eight", ["toolDecrCanvasH.png"], [wx.ACCEL_ALT, ord("W")], None, MiRCARTCanvasInterface.canvasDecrCanvasHeight] - CID_INCR_BRUSH = [0x112, TID_COMMAND, "Increase brush size", \ - "I&ncrease brush size", ["", wx.ART_PLUS], [wx.ACCEL_CTRL, ord("+")], None, MiRCARTCanvasInterface.canvasIncrBrush] - CID_DECR_BRUSH = [0x113, TID_COMMAND, "Decrease brush size", \ - "&Decrease brush size", ["", wx.ART_MINUS], [wx.ACCEL_CTRL, ord("-")], None, MiRCARTCanvasInterface.canvasDecrBrush] - CID_SOLID_BRUSH = [0x114, TID_SELECT, "Solid brush", "&Solid brush", None, None, True, MiRCARTCanvasInterface.canvasBrushSolid] + "Decrease canvas height", ["toolDecrCanvasH.png"], None, None, MiRCARTCanvasInterface.canvasDecrCanvasHeight] + CID_INCRHW_CANVAS = [0x112, TID_COMMAND, "Increase canvas size", \ + "Increase canvas size", ["toolIncrCanvasHW.png"], None, None, MiRCARTCanvasInterface.canvasIncrCanvasHeightWidth] + CID_DECRHW_CANVAS = [0x113, TID_COMMAND, "Decrease canvas size", \ + "Decrease canvas size", ["toolDecrCanvasHW.png"], None, None, MiRCARTCanvasInterface.canvasDecrCanvasHeightWidth] + CID_INCRW_BRUSH = [0x114, TID_COMMAND, "Increase brush width", \ + "Increase brush width", ["toolIncrBrushW.png"], None, None, MiRCARTCanvasInterface.canvasIncrBrushWidth] + CID_DECRW_BRUSH = [0x115, TID_COMMAND, "Decrease brush width", \ + "Decrease brush width", ["toolDecrBrushW.png"], None, None, MiRCARTCanvasInterface.canvasDecrBrushWidth] + CID_INCRH_BRUSH = [0x116, TID_COMMAND, "Increase brush height", \ + "Increase brush height", ["toolIncrBrushH.png"], None, None, MiRCARTCanvasInterface.canvasIncrBrushHeight] + CID_DECRH_BRUSH = [0x117, TID_COMMAND, "Decrease brush height", \ + "Decrease brush height", ["toolDecrBrushH.png"], None, None, MiRCARTCanvasInterface.canvasDecrBrushHeight] + CID_INCRHW_BRUSH = [0x118, TID_COMMAND, "Increase brush size", \ + "Increase brush size", ["toolIncrBrushHW.png"], None, None, MiRCARTCanvasInterface.canvasIncrBrushHeightWidth] + CID_DECRHW_BRUSH = [0x119, TID_COMMAND, "Decrease brush size", \ + "Decrease brush size", ["toolDecrBrushHW.png"], None, None, MiRCARTCanvasInterface.canvasDecrBrushHeightWidth] + CID_SOLID_BRUSH = [0x11a, TID_SELECT, "Solid brush", "Solid brush", None, None, True, MiRCARTCanvasInterface.canvasBrushSolid] CID_RECT = [0x150, TID_SELECT, "Rectangle", "&Rectangle", ["toolRect.png"], [wx.ACCEL_CTRL, ord("R")], True, MiRCARTCanvasInterface.canvasToolRect] CID_CIRCLE = [0x151, TID_SELECT, "Circle", "&Circle", ["toolCircle.png"], [wx.ACCEL_CTRL, ord("C")], False, MiRCARTCanvasInterface.canvasToolCircle] @@ -102,7 +114,10 @@ class MiRCARTFrame(MiRCARTGeneralFrame): CID_UNDO, CID_REDO, NID_MENU_SEP, \ CID_CUT, CID_COPY, CID_PASTE, CID_DELETE, NID_MENU_SEP, \ CID_INCRW_CANVAS, CID_DECRW_CANVAS, CID_INCRH_CANVAS, CID_DECRH_CANVAS, NID_MENU_SEP, \ - CID_INCR_BRUSH, CID_DECR_BRUSH, CID_SOLID_BRUSH)) + CID_INCRHW_CANVAS, CID_DECRHW_CANVAS, NID_MENU_SEP, \ + CID_INCRW_BRUSH, CID_DECRW_BRUSH, CID_INCRH_BRUSH, CID_DECRH_BRUSH, NID_MENU_SEP, \ + CID_INCRHW_BRUSH, CID_DECRHW_BRUSH, NID_MENU_SEP, \ + CID_SOLID_BRUSH)) MID_TOOLS = (0x302, TID_MENU, "Tools", "&Tools", ( \ CID_RECT, CID_CIRCLE, CID_FILL, CID_LINE, CID_TEXT, CID_CLONE_SELECT, CID_MOVE_SELECT)) # }}} @@ -111,20 +126,20 @@ class MiRCARTFrame(MiRCARTGeneralFrame): CID_NEW, CID_OPEN, CID_SAVE, CID_SAVEAS, NID_TOOLBAR_HSEP, \ CID_UNDO, CID_REDO, NID_TOOLBAR_HSEP, \ CID_CUT, CID_COPY, CID_PASTE, CID_DELETE, NID_TOOLBAR_HSEP, \ - CID_INCR_BRUSH, CID_DECR_BRUSH, NID_TOOLBAR_HSEP, \ CID_INCRW_CANVAS, CID_DECRW_CANVAS, CID_INCRH_CANVAS, CID_DECRH_CANVAS, NID_TOOLBAR_HSEP, \ + CID_INCRHW_CANVAS, CID_DECRHW_CANVAS, NID_TOOLBAR_HSEP, \ CID_RECT, CID_CIRCLE, CID_FILL, CID_LINE, CID_TEXT, CID_CLONE_SELECT, CID_MOVE_SELECT, \ NID_TOOLBAR_VSEP, \ CID_COLOUR00, CID_COLOUR01, CID_COLOUR02, CID_COLOUR03, CID_COLOUR04, \ CID_COLOUR05, CID_COLOUR06, CID_COLOUR07, CID_COLOUR08, CID_COLOUR09, \ CID_COLOUR10, CID_COLOUR11, CID_COLOUR12, CID_COLOUR13, CID_COLOUR14, \ - CID_COLOUR15)) + CID_COLOUR15, NID_TOOLBAR_HSEP, \ + CID_INCRW_BRUSH, CID_DECRW_BRUSH, CID_INCRH_BRUSH, CID_DECRH_BRUSH, NID_TOOLBAR_HSEP, \ + CID_INCRHW_BRUSH, CID_DECRHW_BRUSH)) # }}} # {{{ Accelerators (hotkeys) AID_EDIT = (0x500, TID_ACCELS, ( \ CID_NEW, CID_OPEN, CID_SAVE, CID_EXIT, CID_UNDO, CID_REDO, \ - CID_INCRW_CANVAS, CID_DECRW_CANVAS, CID_INCRH_CANVAS, CID_DECRH_CANVAS, \ - CID_INCR_BRUSH, CID_DECR_BRUSH, \ CID_RECT, CID_CIRCLE, CID_FILL, CID_LINE, CID_TEXT, CID_CLONE_SELECT, CID_MOVE_SELECT)) # }}} # {{{ Lists diff --git a/assets/toolDecrBrushH.png b/assets/toolDecrBrushH.png new file mode 100644 index 0000000000000000000000000000000000000000..6b372738c70ceac3d8eb7dfb8d14e1aecd9592be GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxK$!8B)5ZfpLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JwwYY*EXd974>+! zIEGmGFYR&UJ8ZzgGTE#>PV4Fa`KlXC-$_jfUOmmNEiyrP;(m>%T#*jFdB<*KyxuVX zqwcMsKkrW{>1_KR!l!NFJkO=}!O|NO-&N0Jk=?NCQ1O`pW=H0I0v~0J?>HQ3Ja0X9 zyXYK6|3!8iwE2Om?{#mJ_#gJT@_bM4Hoo7IkvclkOJf#J*{^(?HHWADxK5Y(A)vb$ NJYD@<);T3K0RX`gV}t+z literal 0 HcmV?d00001 diff --git a/assets/toolDecrBrushHW.png b/assets/toolDecrBrushHW.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c14cab292f3c54f7e4ca27ef5d452646aa4102 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjGL736~_k^`TLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JwwYY*EXd96;1MV zaSXBWU)y_-@2~-f^XAg_IJK|;>&==O`X(<-nfyy7*g#EpYnVnt{_?_t8@E@QpS$zk z#NpX$Nv3vVMU^d!4Sw#PB$_mDu5*k0hGUA{63ad0f8JX>@tgeJ-weXWOvhBKvW4xw ziEzn92^d_d&H}MtEo*FVy0LkU#l6>w)?pTNPI65=s~s6>Ab-Z|?ETQw>@(G#r^?M@ R)B(DV!PC{xWt~$(698I$W1Rp1 literal 0 HcmV?d00001 diff --git a/assets/toolDecrBrushW.png b/assets/toolDecrBrushW.png new file mode 100644 index 0000000000000000000000000000000000000000..64e964b41c9004f4b29f1a2f3d913cd380de3c9a GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxK$!8B)5ZfpLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JwwYY*EXd96_tCs zIEGmGFYO8BYcSw&?zKO*;=8@xI&PoFT^6d9o|PrDU7m=C^f^4`h-+@SY6GAX7(8A5T-G@yGywpyLR4%3 literal 0 HcmV?d00001 diff --git a/assets/toolDecrCanvasH.png b/assets/toolDecrCanvasH.png index 6b372738c70ceac3d8eb7dfb8d14e1aecd9592be..1ea55ef3699cd94dedc187666d5852c949a77999 100644 GIT binary patch delta 177 zcmV;i08amp0*L~UJPN%401mwYNBfYikwz$ghDk(0R5(wij7tu{AP7Y5XVFcQ-v6?e zG2jQ0XiM^R7zP4W{7HyZc$P5_=-va_W`T`_cpjXE9{(Q5bU~v>9mENtX43~Q0!OmX zGyedzg_;*b%vxKhc`?LPJ?bHD2sN8Nun{|inw5po&pMU#mEQ&NB*gRJEOcwuy$7-! fOADHO;5#9{-ZT(D8=bp~00000NkvXXu0mjfAel?w delta 183 zcmV;o07(Cd0*?ZaJPN)501mzZ>O!%=kwz$gj7da6R5(wij6n{=FbD*bHiup+<^P{0 zur=-)kW;IcMuu5n6Oq3t!lvI6;>1s;*b z3=DjGK$vmro+3}6pk#?_L`iUdT1k0gQ7S`0VrE{6US4X6f{C7io}uNHYnxJlispH` zIEGmGZ=DdxcgTRp+1jB)Ugcf=%}M5SCX_|Dn@m_4XKXtA zaY=dMg~=W~6MA;4v|sm7X?r-2XG3(;S|6FlA1y7bKOXy3?8w#FK5^28r@CAbWk2UL zah`p>`(bL$rX70ktz}+ny#J#wJ}vNIltSDD+n4hf%I~#Q&bHk+HIrXP?v9e+Qzwoc hW=e+g?2)ge%tJPN%401mwYNBfYikwz$gc1c7*R5(wyj8O`JFbqS7KO*Y=k2_mP zN7tx$)yh>$?-$M?82!c z$=nvKfd0sELA*VqY-f6%5%bN!@fa#F!*oW>cZQk%_KdP*&d>_pQ|bk?trJIU2~~Ft P00000NkvXXu0mjf`36Sc delta 162 zcmV;T0A2t20r~-uJPN)501mzZ>O!%=kwz$gcS%G+R5(wij8P7NFbG49KgOu{KQ68d zOo6&MC3#7Cbelxv7gUZw!lvI6;>1s;*b z3=DkxK$!8B)5ZfpLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JwwYY*EXd96=iz5 zIEGmGukDHEJD|Y9viJYel@sz#t&Z3tFMMZWs=!6Tm2U)EHC}7w%n;0o|7i1W(tPbj z9$jzl@wt6`&M0F0W4f%Y%L-Nz8!%%B>y9(Vfp6pvG|krrYY=o@d}hfeXRZCtkC`es W*5-#79$yQzl)=;0&t;ucLK6UCCs9ZM literal 0 HcmV?d00001 diff --git a/assets/toolIncrBrushHW.png b/assets/toolIncrBrushHW.png new file mode 100644 index 0000000000000000000000000000000000000000..34f3a41458da9ff15f619a2ae06c72a7081d565f GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjGL736~_k^`TLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JwwYY*EXd970vf_ zaSXBWU)y(^>#zZj^X}7!=M_oZ8$K==iX-qnPr!h6)IT%GM~FKr7`EE_K67(WsUb*v`_z$-{5VV z&%<8*q3xjSLdWa6{J*$7-t!%vW_Z|f#q9PXPsR!N=008!@m%SjQVRobd?C=J|8fDL g;#$+6S>^s__|kqizrE;%GSI0Ep00i_>zopr0C^Q|mjD0& literal 0 HcmV?d00001 diff --git a/assets/toolIncrBrushW.png b/assets/toolIncrBrushW.png new file mode 100644 index 0000000000000000000000000000000000000000..6790bfc4babf737cd7a644743ccb6e1109550703 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXJ~ol+NKnsqEt^8 z#}EturM--N2NXD%|NdV-b4J3F5{nrpC3iCM3I1fAD!O8g!&1ZkxX&kxTfG+VJ-{aT zCb%g=h>aIWS)63!)#|<0l+%#9Z^xfy3H{t!Ev&08n#?z(+i&xjw&9GZ?212qJ?vA? Wtj!nQwL=M%9u{#6d+00009 M07*qoM6N<$g6gqKc>n+a delta 147 zcmeyy_=a(U4c9&f2EKiaubeg>nCPZam+9%^7-HeSwkMkJfC2~0-v3KiPRKj8I%12w z@STaN0v82Wz7c5Ec&(K)Log%$qs_ZX^R*XwbiKL9=l1bAqloQ~>9VpeD_BKrz>FQN xJI)vfzL7i7G+!I6LC|&anI)T?we~wdW~$&=n;%|yd@TbIc)I$ztaD0e0su1SJ^TOw diff --git a/assets/toolIncrCanvasHW.png b/assets/toolIncrCanvasHW.png new file mode 100644 index 0000000000000000000000000000000000000000..4002cc8bd198d614cb9a4f65d268aec5107f8796 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjGK$vmro+3}6pk#?_L`iUdT1k0gQ7S`0VrE{6US4X6f{C7io}uNHYnxJlil%$I zIEGmGFAd`4Yf#{E<~{bmUgCOWLBoqHYO>b5*qR+D)ETKT`mq-2D?UG$snEd@W}%d# zDll1+$z#cz>5k{R4<38AR&t&48NF|{z|jfF`G5CrmOB#Qn?c9+xoVbBa%;E@)95O XgTe~DWM4fdjwwf literal 0 HcmV?d00001 diff --git a/assets/toolIncrCanvasW.png b/assets/toolIncrCanvasW.png index 6790bfc4babf737cd7a644743ccb6e1109550703..48f8053c6a218392aa207d1a6f2e008344bdb116 100644 GIT binary patch delta 147 zcmaFC_=a(U4c9&f2EKiaubeg>nCPZam+9%^7-HeSwTF@GfB^^d-~Y?!Hi@m3y45SX zZpq2ONr&YXr!Bs2`oBJ*$z?}&8;HnjKlGs2Iq}1*2Qw4|-_2SGB8nyNPdw+FdPaEn zey(bnV7m{8J|B6v{LtwieIbP0l+XkKe~d*9 delta 143 zcmV;A0C4~80q6mcJPN-601m$aI0aKAkwz$bWl2OqR5(wijR6k8AP58f|EHOlV5D?7 zn8_Kr0uB-R1(g-3tU#qPk6!c1bA?Kyy}$+$>{EhR5(W+IQ-V0j1`R5W)`Dz+Wxlxl xreKc?Due~AID$8@XFs+`maxnf9jN?{j0cp=t#1{&xElZf002ovPDHLkV1m<)Iqm=e