From f0beae83f2da6b14568ea461b4def9728da88968 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauld.mccarthy@gmail.com>
Date: Fri, 22 Jan 2016 12:25:44 +0000
Subject: [PATCH] New spanner icon, so I can add the overlay display panel
 shortcut back in.

---
 README                                        |   8 ++++++--
 fsl/fsleyes/controls/lightboxtoolbar.py       |   4 ++--
 fsl/fsleyes/controls/orthotoolbar.py          |   4 ++--
 fsl/fsleyes/controls/overlaydisplaytoolbar.py |  19 +++++++++++++++---
 fsl/fsleyes/icons/sources/spanner.xcf         | Bin 0 -> 5592 bytes
 .../icons/sources/spannerHighlight.xcf        | Bin 0 -> 19522 bytes
 fsl/fsleyes/icons/spanner24.png               | Bin 0 -> 661 bytes
 fsl/fsleyes/icons/spanner24@2x.png            | Bin 0 -> 1410 bytes
 fsl/fsleyes/icons/spannerHighlight24.png      | Bin 0 -> 1723 bytes
 fsl/fsleyes/icons/spannerHighlight24@2x.png   | Bin 0 -> 4110 bytes
 10 files changed, 26 insertions(+), 9 deletions(-)
 create mode 100644 fsl/fsleyes/icons/sources/spanner.xcf
 create mode 100644 fsl/fsleyes/icons/sources/spannerHighlight.xcf
 create mode 100644 fsl/fsleyes/icons/spanner24.png
 create mode 100644 fsl/fsleyes/icons/spanner24@2x.png
 create mode 100644 fsl/fsleyes/icons/spannerHighlight24.png
 create mode 100644 fsl/fsleyes/icons/spannerHighlight24@2x.png

diff --git a/README b/README
index 708d50b69..596ee2daa 100644
--- a/README
+++ b/README
@@ -8,7 +8,7 @@ Dependencies:
  - matplotlib 1.3.1
  - nibabel    1.3.0
  - Pillow     2.5.3 (for screenshots of any type other than PNG)
-
+ - PyParsing  2.0.3
  - wxPython   3.0.0.0
 
  - OSMesa 6.5.3 (for off-screen rendering)
@@ -17,7 +17,11 @@ Dependencies:
    - OpenGL 1.4, with the following extensions:
      - ARB_vertex_program
      - ARB_fragment_program
-   - OpenGL 2.1
+     - EXT_framebuffer_object
+   - OpenGL 2.1, with the following extensions:
+     - EXT_framebuffer_object
+     - ARB_instanced_arrays
+     - ARB_draw_instanced
 
 Some of the icons are derived from the Freeline icon set, by Enes Dal,
 available at https://www.iconfinder.com/Enesdal, and released under the
diff --git a/fsl/fsleyes/controls/lightboxtoolbar.py b/fsl/fsleyes/controls/lightboxtoolbar.py
index ea72863e9..ae7d38d81 100644
--- a/fsl/fsleyes/controls/lightboxtoolbar.py
+++ b/fsl/fsleyes/controls/lightboxtoolbar.py
@@ -60,8 +60,8 @@ class LightBoxToolBar(fsltoolbar.FSLEyesToolBar):
                 fslicons.findImageFile('movieHighlight24'),
                 fslicons.findImageFile('movie24')],
             'toggleCanvasSettingsPanel' : [
-                fslicons.findImageFile('gearHighlight24'),
-                fslicons.findImageFile('gear24')],
+                fslicons.findImageFile('spannerHighlight24'),
+                fslicons.findImageFile('spanner24')],
 
             'zax' : {
                 0 : [fslicons.findImageFile('sagittalSliceHighlight24'),
diff --git a/fsl/fsleyes/controls/orthotoolbar.py b/fsl/fsleyes/controls/orthotoolbar.py
index 2b2065829..297aa8cd6 100644
--- a/fsl/fsleyes/controls/orthotoolbar.py
+++ b/fsl/fsleyes/controls/orthotoolbar.py
@@ -98,8 +98,8 @@ class OrthoToolBar(fsltoolbar.FSLEyesToolBar):
                 fslicons.findImageFile('axialSliceHighlight24'),
                 fslicons.findImageFile('axialSlice24')],
             'toggleCanvasSettingsPanel' : [
-                fslicons.findImageFile('gearHighlight24'),
-                fslicons.findImageFile('gear24')],
+                fslicons.findImageFile('spannerHighlight24'),
+                fslicons.findImageFile('spanner24')],
 
             'resetZoom'    : fslicons.findImageFile('resetZoom24'),
             'centreCursor' : fslicons.findImageFile('centre24'),
diff --git a/fsl/fsleyes/controls/overlaydisplaytoolbar.py b/fsl/fsleyes/controls/overlaydisplaytoolbar.py
index 5bc7e5eeb..bf8d6c0fb 100644
--- a/fsl/fsleyes/controls/overlaydisplaytoolbar.py
+++ b/fsl/fsleyes/controls/overlaydisplaytoolbar.py
@@ -217,7 +217,15 @@ class OverlayDisplayToolBar(fsltoolbar.FSLEyesToolBar):
         briSpec   = dispSpecs['brightness']
         conSpec   = dispSpecs['contrast']
 
-        # Button which toggles overlay info 
+        # Buttons which toggle overlay
+        # info and display panel
+        panelSpec = actions.ToggleActionButton(
+            'toggleDisplayPanel',
+            actionKwargs={'floatPane' : True},
+            icon=[icons.findImageFile('gearHighlight24'),
+                  icons.findImageFile('gear24')],
+            tooltip=fsltooltips.actions[viewPanel, 'toggleDisplayPanel'])
+ 
         infoSpec = actions.ToggleActionButton(
             'toggleOverlayInfo',
             actionKwargs={'floatPane' : True},
@@ -236,7 +244,8 @@ class OverlayDisplayToolBar(fsltoolbar.FSLEyesToolBar):
 
         nameTypePanel.SetSizer(nameTypeSizer)
         briconPanel  .SetSizer(briconSizer)
-
+        
+        panelWidget = props.buildGUI(self,          viewPanel, panelSpec)
         infoWidget  = props.buildGUI(self,          viewPanel, infoSpec)
         nameWidget  = props.buildGUI(nameTypePanel, display,   nameSpec)
         typeWidget  = props.buildGUI(nameTypePanel, display,   typeSpec)
@@ -264,7 +273,11 @@ class OverlayDisplayToolBar(fsltoolbar.FSLEyesToolBar):
         briconSizer.Add(conLabel)
         briconSizer.Add(conWidget)
 
-        return [infoWidget, nameTypePanel, alphaPanel, briconPanel]
+        return [panelWidget,
+                infoWidget,
+                nameTypePanel,
+                alphaPanel,
+                briconPanel]
 
 
     def __makeVolumeOptsTools(self, opts):
diff --git a/fsl/fsleyes/icons/sources/spanner.xcf b/fsl/fsleyes/icons/sources/spanner.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..dda3bce71f7a68ee3730ce854ddf80e650e6072c
GIT binary patch
literal 5592
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
H_L}?;D#KK`

literal 0
HcmV?d00001

diff --git a/fsl/fsleyes/icons/sources/spannerHighlight.xcf b/fsl/fsleyes/icons/sources/spannerHighlight.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..c9269a5f7a606ba80bab9f9e5fd1991d24e50d39
GIT binary patch
literal 19522
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

literal 0
HcmV?d00001

diff --git a/fsl/fsleyes/icons/spanner24.png b/fsl/fsleyes/icons/spanner24.png
new file mode 100644
index 0000000000000000000000000000000000000000..d97cf6b861e981c72369a3c5fd33bd79c7f8d21a
GIT binary patch
literal 661
zcmV;G0&4w<P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-~kp44H-&Zzc>H@0wPI7
zK~zY`t=3J5PEi;K@ZWgno1rYmM_G-mY|LuPLhO{Xuuzg%`6y+970JrNic*?|hC-}Z
zC|?U(5k{eieAQrxd}}Z^|2y4ouh-0&r%vxZ&-0xB`JeyuoO@rU&YH&UtYg#gJI{Ss
zjBb3zGhD%E)bMMv%zAMT?=e~$zwr*6CrEmXIcy5pHw<DgR$?0-CiY~a$`ncK1MmWC
zO7T8iPHX^+;_u3DZ9JRI#~XYMAavkdfbXXsg{_EOYsV|m?f@Oid}ijaur9t9G>7rE
z6nS_&+PC0*06PLOH}f?m@TQE_i9N#ioMx<u^)~3h!nEQyw1@dHmL>03*pEiG12~2@
zENHYr5$nW<5*VDqs??_mBRHJAgZPxZwnh@w!uUeim9_4T?<>w?SLXYYcQTu<ZnQxg
z=0%RtFs+qZw+B0LEAfx<x8iA}T+nEPx%iRATPv5YDW|DkM%bA(7aLu;9=uNC_6kUI
zMZ(U~x(#WDQOvFf-iA3CO461}ykNaNQWUlXmr5sI`ZxC7b!2I-<P20^bj29K<1|2B
zn}e4XS(;0QgQJNLrd6-wD*E%js#lXSJCeowEB*rfc;a^>Wh<tq4*#?++$r^Y^@0@O
zHv-%qmbFUj{?%sTK{`N%S%1K9#y@F05uiOK-|3Ppt^fPMUV^u!S3uDnw<B5mWPu9}
vhw|Z`5h<SI3^w8meop0Ij#;J8-hbO4=}L?dyImZO00000NkvXXu0mjf?@2N6

literal 0
HcmV?d00001

diff --git a/fsl/fsleyes/icons/spanner24@2x.png b/fsl/fsleyes/icons/spanner24@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c2df6f1e369c98d7f965badd16872e48a06fe45
GIT binary patch
literal 1410
zcmV-|1%3L7P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-~kp44JQ0Mk_7+&1rJF?
zK~!ko)tFm|Rb>>%e|yf%IHQA?C>n+6`p`>s!EO+d1eK{#jFeOm8Bs)_L_tKp2oXet
zWe)UEL}d?3P*YlvY5F3JDU=Tpky%X>!;FoR>D<maz5Ev}7JJXxXU?8E(}K-+_SxTM
zegAK*|61RI|G6Y{v`&kjB&=BlDtfB(5ug^JEoa|0^{;z@*_2kG8+aV}1UM<At3Vm}
z8Q2MI04{K+kTer<Tl^v5E2pqMlfanT_-!|ESF<)@3tkL-@9f&po&?5$DSfl|xRG<f
zZFv_h6{vg_SOXjbmWI<vfYZP!;5cv;_(y#vfG&+s<O>%8yWG69D(0k5Ikd|T(Ooj9
z6&d4qIMcGzczdqQ$QF3eQKBh62wX2m_We8b`##_=r@W2Z5XhxeprxeBm9pD$w}G#N
zQ+p)4fp67sT<v+_Ltuf%c!j%wg|l%Y7M%J5`ky)q_3aAab%(Z@*&bkJ3X8RiT2BD|
zI?cj1kw~$XfkA!*mN*1W`DcNVU@il|jlt0g;|{vHM}TXJ3{U_E0-E=yFx(INHl_9y
z@RFOSCBv`QrT9m0QKygy>8j)Mqwbq6@UrVO3cLd>3m|049}0M$7zQ-HwTM&L931hH
zls-?o#ow$WiQMeQO}OA!1+J|lznYdhzm)0N1|oYT3TWow{W*|tQzZXebDsvDQP49J
ze7>kW?supBU<hjd_fJBxT4Mv&f2Tu#oBkVdb9`J>7BT21-J7DEE%2&SXl;!-Z*Xzp
zZ14vI>#$#IrpK@_ATa7KC?;j0`hngnz{VPW@SX^vL+MAWo6BTzQA{-8P&trc9<9KI
zz_64U1+K_2oyXiseIo@8;6L43`*X5bO(#B~Nz1^$E_$Zj$Ub+<osmMlz)kAc2@E;&
zS>@)qL{4q-;N3=jz&7x{CLB|{WSV2$6!?51MDQc-cV8I0M#>utZETc<Ov&9L4qR7b
z+?`^TLqT~<0?+DwaZv8H(EqAN;y@|n@D&|-S{%rdPGC83FYu943sdfeV0uek%3ak>
zuWP2}lLSQkrDc6iW=OPntUz21+?)c`){yCLZPaXbxMMfuAD$tt*=E{PQgnbjoWG1K
z8h1C6dG<QwP5GW#y5U_e=9zNNyJaRoS?BF3SH_;4be7~aEt6ZEL)-IRN~)4u`CgaL
z8)ZJ4Q~6TLX|_v|_VB$Mcq66UH~=h4i7~kr?sX`b**s8Zwc-`s16F0MvsRRR#;sKm
zSfk2L3uBu+X5-CaUrP1uJn&n%X;tK`-b9ZzQjyp`4cpY3aFN<Q&h#dP=$LcLDfgeR
zXbdTG*PZVea$6c;n@+X+Ls`)yomEmC0-jLts#|F*;jMFJ68pAZmE}@MYqO+ZdA((m
z=X8te1a1W`Q@Laq_(ge8pOQmEeQG8tLK5zv^{|aG#9oJbMeXW3oW7xJ;)||~QFa9?
zaw;DkwhY`JGRGw4DJ=RO7yADGnm2Il3&>BpI{%!>pi7Mp<zRu16t*$5xx1*!L0(y)
zwAIl6qQ(Z&*e1(t=1hJ~xgt(yLPvyp+1<=m(**HX#Iob(=iDYruC=087TdJYBw6mF
zuPL@E^jRinpEqU`lecXyVwPPM;WMSQMza-{zudz-kye@0!BBOM)dc@vPqUHF@`<;c
zd5pVjo%zSG(uG1QWJQZH&!sA)o)pCnig})%kEqwWNp)nH+q{>g#(UG{KbhkM<WySo
Q{{R3007*qoM6N<$f&_b`u>b%7

literal 0
HcmV?d00001

diff --git a/fsl/fsleyes/icons/spannerHighlight24.png b/fsl/fsleyes/icons/spannerHighlight24.png
new file mode 100644
index 0000000000000000000000000000000000000000..09e37fa9a9e30a9f773c4df7ab4b82604efeafac
GIT binary patch
literal 1723
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
RH*o*}002ovPDHLkV1l&MED-<z

literal 0
HcmV?d00001

diff --git a/fsl/fsleyes/icons/spannerHighlight24@2x.png b/fsl/fsleyes/icons/spannerHighlight24@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..101fe904e3cfeb7c05d4aadcb381f974234d8337
GIT binary patch
literal 4110
zcmV+p5b^JcP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-~kp44;P=)@Vx*451UCu
zK~!koy_tKIU3GQGKl^vixsQ2d9+@G@<ee~tM+C0RM@1T*+7P5HRsa=2s<K3(*jw%L
zQEiufNa~}@yOt@~N-YRz1q54+6=^`gN)gB<K_Ll&Br{=>d1NM&$(=j*o^yV?f1KaB
z8Pg;X1kPGnnVEI(@9f8SfA@FqpYS?7g`%cEO1UKJ{?-Yc3VafH572RxBSwIGf$sua
z%Ox30&n=gv@&Dl-c|8nwFY(JIi3&yS1+E3I0onjii>g&nP)*(|X!3f4h!Lb=N+0k&
zU`@FslZB!-g7UgMFwK!{xg@nhQNIdY4>UW&RW%kd0mcV0$v?#TVL>g}2-Jp%cos3n
z9Xkaq1_l9rT{CcKY70f}0UiaG0ukVg2ew|Xhm(Vhzx0!_(dTcQs1BE#G_D6g7cgl2
zeAqJgY`=Zk<+Lqa+2%JL=ZSB!8mod#0WXzHvixYa$nRmiluM$8qMijj1Q^stAikHA
z`cV1S(Y>2)_9}aR-PFj4c!=?F@fS@(pB`OpU2xubcj3>o9VcAaVMA3CTwPZ#$<0Tq
z1Nl7)HgHAyR00=Oj7U`3GrHy9&+zK|x3>UZ@)l7MFL|9D1Ustg>O&woSBzgj{?dmt
zt@F=BV*oY+=KzyH{m^<aueE4_yfc0ZRg5pP?}dAJKl?9p+QP~}n?rkQXe53<^7CEw
z%#205vTaMB&a}?o?KgGDCfgRK#wTSH1w&7L9gX5NJIjFMff<JyUnuHpFXBQ`w*U*(
zh8aH>*nwYtZRfx*Ki4DT<y5VT7*UODtqacI*Ll)ae#`uGCEqpA8jmg;ftQ1Dg3%rS
z_2GE*`P;iiJP<)`ME7aeGw+<W3DQK=A*B!aZn-3Xlaj_ULFf?5`~q+zs2X2n<k>rh
zcRp}cr-<jN#)^oD_`|*L|5eb`eR`7#{0!D1Ca&S<bBu2OPx{w?lCUy>7(Xc=V9^CX
zp#6l)6EafJ1V<|3rM5m*F3H;qMa`5;QkP>a+`w`BR-i)+OpU%U^8D?~J5Uw1kpU&&
zT^Ky^LmOIA+XSKrf(T+DoY=$mbsyls%a0&l294_&KSz7-Wh^-VJBSHTlq4fy>lF~e
z%Qm5rDk61YtXz^g$5aD_qMC9^Lf~US2WqXx*7iO4G1a*4sSOP%%{}iPIOQW7W~q&u
z5TmNGcsU_FFu<;d|AOD#GM@u4KLTRVxXz44tLVM#F_vEPJ;Ve_j}s4#>%`SjHsA3U
zw%vUWmEC2$tO#fT%q|qQ2;d(B?7gJ*@DHGMRhyaI^Xq{FFF!UrL8210%-g^8;&ts&
zElyz}UdCt76KmP?_?L;M_BtAcpm`2UF1nAV<KBjNLR8U4-K&l8^BFeZdkMAi?bOD%
z>$V@A6ZKyDi%Qe1)7u^Mez;K7TV8br$|VU4MZGk6L2Ue-Pv82FJ1u|$@!S>PnDU$2
z@**CpF~;|K?$*=T_3#bEwS5WgWoFRx?i)Gv+Fj(k3kjE6I4C6)FXJ=1`F;+({AlX1
z#I^BYs9e&dQ6_Q==z6sdq^Dm8#3G&_PK=LC?fq@Hco{@I$#$Gj>3YliTQpVy#m{=|
z`QNWl9od9<8BC^?uD5)gQ$Dhdo-@Bd97Za}4-q54W?*OfDjP%pL)Rf*7CqSL7~6W6
zjV8xLZJhq`BJ(PvuZ5!ez;eKvtT423Z3OtJTD1|~r+;ctElr89f-3k;vy+&{bvjSF
zng#FuXS{3&aZM59i))5|>FR2sYt{^HC=njmg~l~dTLEGaG^)<5?|*3&G`0J(V`*gb
zlNYKOAI4v}r=ApDlAW$oKhYf5<Hm<=sI>R4ZX|GW_v45GwUJYyJP6Dzmt+laKVa2{
zgcE}dKJm981~1#e+!g;=6)$UDKVaXBKdu@tNSj>mu{ba@aX^d+d&9}09zanmz-~Y1
z^`KU#byPBK?c_R6K#Wgi@Yks{NYj6Jxg?{7qJ9eKR2!<F57_m{r-`P<KrJ&*zMA9S
z`ss}Eb0V(5E4!aC;(@9vF#A{>Xn--SXihbfL?y)JyH1@-jBB)&K@o$kL;LZoQ5ym<
z{^B}J;Ct>f-zpUKzk$C8tnmWxK>r5DwtOGs<uE}r^Uwb#;!zVXXVbI8%C4s5N0npN
zLJkdTqiU0*)#Ow!7)yvjQVjhE;$fqZj+3r(-!ts}?RW8WjU4&FSwIV5#Dkp=eiShQ
zHlAYfsvi>9BD^fF1{%7mBOxq3W-%v@<;2T2jRIkMiiXwM$w`_*=yCTI_4D2M`7Qt^
z`X8b)upKW8UQRqQcxpot10$PmqdL41wIQwZ&t=BqRfrhkDcYQ~sTsT6P^V0*=2s)1
zo!g3^Cu_W%AR=NiOpQK=@xavsz&xNXV#Ld~(LDPPKrL}?ADizyosDbfvh%0cQ`!Bb
zc-ersUghP-KAS|;%Q5?%e}x!9jG?w~r?FABA-8i~%bTY44Kc66@bojM0Zj=l(vs^u
zu@4*L=%A;zZ>&$eAdOT7*nk*J5YW2dyhZ}!`hKG7FvFW}V#^QS!P8$Cw%vUeQFRD_
z)`jn(ZRy#`sRky8Hq>o>!lwP8WzM_CHBJNvu)`dM`*DiT7K(Z`@UPApV<QkRJIftv
z0Ig5-FAyV9+H>59iN?@fDAK$7LAncnM$6n4jiOF?KSO2kNlcIoZHrdkNjzoKd`A;~
z4;mnF*$rnbeqXoRFpd2t|0vNn<&xA3MZFgIwv!Nu=h64T^^CuCe{(~45lX&mIW~?Z
znY{3TZvdZi?3Hg_be^;>I*+(kC9dtGI$UOK^A8x`@l)b>6dP8U`-fk{%eA7hMQv!~
zT17@S-5jRr3tH!o2hDTZ5##d19sc2Dvok)8{I{L{@Wt~Oc=WRjZ@LNBl@i9d@NN);
zBq{NL$IB%dE)?|xZr7937y-q286@AujD;&{Te=D_fXePI#I=1i&v_?mK~cOQFuNZ4
z;&!*0P(V6Pc)#c6T14XptRIuZL_gyqe>HGxnoHvgeGgvG@Wz`EFO$sh@f3?z-pS16
zS71X`H}5`BF3HOD9CzktoK!f|iLj&xss)Wn^c1L*I3{Cs-?j&Kzj)uuIf<APP&;+X
zHGTUtEj_aw*ZmCmWB-+56JdOxoj<>hkxe%zk;WvEf8RZHEL)9@NQd<a;G^!yo<dP?
z22OUrPXdp*S~>;fPei;t;vL*~iGT>z;TNmh@4uu|#1mDksFhi7|NKO*qi0rJR|ScH
zTgoK~{a1vI@#$ZGLt=aqiH7m*y{oZNoQ`|@fV0ab87LI>8sIyQcEfZX0i1Yv%1Dx@
zDpBR-|EX-f>&!aPoz{7_ZRyDTbJw&-)etd33~Vo#<VS^~Vh+PLDQtY>3;hpW$MD9r
zh<FY<uxRD&bSztq+J^Dt&iIXmqJG{PUssLsvXb#~5{QSdHbUcis5Xo=uA>?w9{72o
zeqdmzZ~e9Vx88N8FDB?to1_Vv$4<QRnOrnk&xi?XZV0<Hb=`Lhs>8EQ3L9v&_$3$J
zOMCAnXbjVge`mQQTb%K0oU+WAAYj)+U)1`<&e8T|S5(`Utcv_Bi&Bn{s`0MT&3Eg_
zGvCt5!KZs{H0dW=B~;_*#YWY=Cttm_=4DzsRIxx7_*}Up&lZa6l}i$f!~chXJAepP
zA0rGr`dJ2_{(6ILfCg-)MSkD3$bS;J39tx8fEVsLpNanUzjFrA4-5l6z-+h7a+BG?
z1y|5Ie{lIncXTQmh<NF0<>$afKwK_KTqr71DC%P1rAFHgpzr55B(RyzHW%DU=gC)0
z$NV^O)->3x0qQoI%6LJJZ9l${{o8+v7|-bzNmhk2ZIz?gR8^u@+zMr==iN7&IcI#K
zBd$fB7{3l=fT!L2D$^<72iB$v9ueEW{?ogLH?CcnjCzUjDcigfY;07`WZUvQciXuf
z*!6H@dx*x8@RSGQr?d_l8D})&=l0Ki*P4Nu%dhG6^BrPCj2J(5#{UvH$F1+DZwK*#
zRj4W=W^C&{!$TXsxhQ2DJv!TLaj;qAx~&PC^8DtOcTgSL(14Bc^Yol?V<oH(4NUI-
zRda28M}W`;GMH^!8n(_o%Wq$Hxiru2of%DWqT0x+Z8RzczFIEH=L<#6OqV&0B2F~0
z6;U&`W8Gz~Vgk1f6Bhl^ZI0)U$Tn+$y2ka4@iT0_YZa4&Pdek1HOb-&@1|qf1<k7T
z8t>r!0LpB&U}LZ$gp+kE;@8CZS!dfiXZ&OC@}z#a4Yd!5m-QHU<jWRl!tFI%=B^m)
zE?n6WRbPQ^;(Er*X4v{eSFjF^h@tn=hiRR+A`xd|B71ONm_BAGV8mp6$1*<yz6d<y
zs9k{QNb7YU6fY3F_ql)b#LFhdWW%_3_4-;^X*7;1u;Ty0Mli;oX1t5M7>^|vucLL|
z3fEx`zyV04#UW1(*bRIiSnJqjx<)(V?Tm9k2q)QZ<Jt_=s@hO8GZyZYfF;x<bgPfc
z%O%-#B(_P6_gv(KB^UpMj%Dv9uG-Z29l*KnGS5!m_LWPrf0~@}obgd=^wEq@91yTk
zt!4Vy=;vno{BE-Q3q}1B@OMXIn}nhqY!<9Yjh}ME&0Eu($0NvhaRnP6>xk~7kZsNG
z7cosBSuuf34sB=>59=1G3Ow7`Oi0Q$Z>Ks`Zm^AbS(aRMUjm!B0h<c20H_^Ge}^v4
zUh6%DNn|aZ%{^ySAQseGpsW8EU)mY81XgV*YNJHIXl#sut#@6(<ls|iDkH_P<f8j%
z@4di%y>VUI>o9K1C3!_SyhaCvs0#DWDpl3S;O=Y(pZLoB{`G(TqMr|}m+=EX7x?ki
zzMaqBvUp<uj-O3q8=?2ohiO}U0k+<N&0gSi2b<WfCV3+sDHK&zV{3fR>{xf@j?v9`
zCXGxQTarCZ$GvT;HnGFT)sZD)0@9gO5WD2!pP07AE2k6W-V`<|rr(IjPj{dnn5Q;U
zF@E&??aN1}_WpL3m_Suy74b|mgbQLkb@x`HHVPN5ynSTmsaMXiwFcYt0jC4|9c+|0
z_%Xl-8;Vc}PP*zhogF7$(Wf>P5zhcBCP0j@Bo}w0Fm}QRpPcMG`O4#LO;gwm0);mN
zHiu@w0RIGh0#LOfCJ3Z9`qJ*c^`D5VBO5zG@_-sYH`IOF4R-cBKGR_%n@5aJTZs0S
zOS0`~Z1aXVFpZ0Ec23}+BYqx$J>h|=StiJh`guCzIuh5S1Ww7AnChcv+&!A*O?=F>
zH2*1ZHZYQ2X+~8gsxn*roTz1HSW!vp*SF62JAk>)cyZe0&9tBY1GW1*Yrigui~s-t
M07*qoM6N<$f<@QyiU0rr

literal 0
HcmV?d00001

-- 
GitLab