summaryrefslogtreecommitdiff
path: root/0001-drawingML-export-transparency-of-solid-filled-shape.patch
blob: 0d057ebc9ef0a04683e6ce22fef1793e235841d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
From b619805c7d21ddd22c7d30b52047b6e98edf160c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolnai=20Tam=C3=A1s?= <tamas.zolnai@collabora.com>
Date: Mon, 27 Jan 2014 12:07:59 +0100
Subject: [PATCH] drawingML export: transparency of solid filled shape

Change-Id: I97968dd5f5233e17870bdfdf2864ae8ce9179080
---
 helpcontent2                                       |   2 +-
 include/oox/export/drawingml.hxx                   |   6 +--
 oox/source/export/drawingml.cxx                    |  55 ++++++++++++++++-----
 .../ooxmlexport/data/dml-solidfill-alpha.docx      | Bin 0 -> 17049 bytes
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx           |  13 +++++
 5 files changed, 60 insertions(+), 16 deletions(-)
 create mode 100644 sw/qa/extras/ooxmlexport/data/dml-solidfill-alpha.docx

diff --git a/helpcontent2 b/helpcontent2
index d1b5923..63d3d0a 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit d1b5923e46b6bca00d9e2875bc94d904be894e78
+Subproject commit 63d3d0a24085e9bbad5518be9d13284e0b1bfa06
diff --git a/include/oox/export/drawingml.hxx b/include/oox/export/drawingml.hxx
index 31c6f20..42dd305 100644
--- a/include/oox/export/drawingml.hxx
+++ b/include/oox/export/drawingml.hxx
@@ -114,13 +114,13 @@ public:
 
     OUString WriteImage( const Graphic &rGraphic );
 
-    void WriteColor( sal_uInt32 nColor );
+    void WriteColor( sal_uInt32 nColor, sal_Int32 nAlpha = 0 );
     void WriteGradientStop( sal_uInt16 nStop, sal_uInt32 nColor );
     void WriteLineArrow( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet, sal_Bool bLineStart );
     void WriteConnectorConnections( EscherConnectorListEntry& rConnectorEntry, sal_Int32 nStartID, sal_Int32 nEndID );
 
-    void WriteSolidFill( sal_uInt32 nColor );
-    void WriteSolidFill( OUString sSchemeName );
+    void WriteSolidFill( sal_uInt32 nColor, sal_Int32 nAlpha = 0 );
+    void WriteSolidFill( OUString sSchemeName, sal_Int32 nAlpha = 0 );
     void WriteSolidFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet );
     void WriteGradientFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet );
     void WriteBlipFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet, OUString sURLPropName, sal_Int32 nXmlNamespace );
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index db05030..f8d1bdc 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -21,6 +21,7 @@
 #include "oox/export/drawingml.hxx"
 #include "oox/export/utils.hxx"
 #include <oox/token/tokens.hxx>
+#include <oox/drawingml/drawingmltypes.hxx>
 
 #include <cstdio>
 #include <com/sun/star/awt/CharSet.hpp>
@@ -148,7 +149,7 @@ bool DrawingML::GetPropertyAndState( Reference< XPropertySet > rXPropSet, Refere
     return bRetValue;
 }
 
-void DrawingML::WriteColor( sal_uInt32 nColor )
+void DrawingML::WriteColor( sal_uInt32 nColor, sal_Int32 nAlpha )
 {
     OString sColor = OString::number(  nColor, 16 );
     if( sColor.getLength() < 6 ) {
@@ -164,22 +165,43 @@ void DrawingML::WriteColor( sal_uInt32 nColor )
 
         sColor = sBuf.getStr();
     }
-    mpFS->singleElementNS( XML_a, XML_srgbClr, XML_val, sColor.getStr(), FSEND );
+    if( nAlpha )
+    {
+        mpFS->startElementNS( XML_a, XML_srgbClr, XML_val, sColor.getStr(), FSEND );
+        mpFS->singleElementNS( XML_a, XML_alpha, XML_val, OString::number(nAlpha), FSEND );
+        mpFS->endElementNS( XML_a, XML_srgbClr );
+
+    }
+    else
+    {
+        mpFS->singleElementNS( XML_a, XML_srgbClr, XML_val, sColor.getStr(), FSEND );
+    }
 }
 
-void DrawingML::WriteSolidFill( sal_uInt32 nColor )
+void DrawingML::WriteSolidFill( sal_uInt32 nColor, sal_Int32 nAlpha )
 {
     mpFS->startElementNS( XML_a, XML_solidFill, FSEND );
-    WriteColor( nColor );
+    WriteColor( nColor, nAlpha );
     mpFS->endElementNS( XML_a, XML_solidFill );
 }
 
-void DrawingML::WriteSolidFill( OUString sSchemeName )
+void DrawingML::WriteSolidFill( OUString sSchemeName, sal_Int32 nAlpha )
 {
     mpFS->startElementNS( XML_a, XML_solidFill, FSEND );
-    mpFS->singleElementNS( XML_a, XML_schemeClr, XML_val,
-                           OUStringToOString( sSchemeName, RTL_TEXTENCODING_ASCII_US ).getStr(),
-                           FSEND );
+    if( nAlpha )
+    {
+        mpFS->startElementNS( XML_a, XML_schemeClr, XML_val,
+            OUStringToOString( sSchemeName, RTL_TEXTENCODING_ASCII_US ).getStr(),
+            FSEND );
+        mpFS->singleElementNS( XML_a, XML_alpha, XML_val, OString::number(nAlpha), FSEND );
+        mpFS->endElementNS( XML_a, XML_schemeClr );
+    }
+    else
+    {
+        mpFS->singleElementNS( XML_a, XML_schemeClr, XML_val,
+            OUStringToOString( sSchemeName, RTL_TEXTENCODING_ASCII_US ).getStr(),
+            FSEND );
+    }
     mpFS->endElementNS( XML_a, XML_solidFill );
 }
 
@@ -208,13 +230,22 @@ void DrawingML::WriteSolidFill( Reference< XPropertySet > rXPropSet )
                 aGrabBag[i].Value >>= aStyleProperties;
     }
 
+    sal_Int32 nAlpha = 0;
+    if( GetProperty( rXPropSet, "FillTransparence" ) )
+    {
+        sal_Int32 nTransparency;
+        rXPropSet->getPropertyValue( "FillTransparence" ) >>= nTransparency;
+        // Calculate alpha value (see oox/source/drawingml/color.cxx : getTransparency())
+        nAlpha = (MAX_PERCENT - ( PER_PERCENT * nTransparency ) );
+    }
+
     // write XML
     if ( nFillColor != nOriginalColor )
         // the user has set a different color for the shape
-        WriteSolidFill( nFillColor & 0xffffff );
+        WriteSolidFill( nFillColor & 0xffffff, nAlpha );
     else if ( !sColorFillScheme.isEmpty() )
         // the shape had a scheme color and the user didn't change it
-        WriteSolidFill( sColorFillScheme );
+        WriteSolidFill( sColorFillScheme, nAlpha );
     else if ( aStyleProperties.hasElements() )
     {
         sal_uInt32 nThemeColor = 0;
@@ -226,13 +257,13 @@ void DrawingML::WriteSolidFill( Reference< XPropertySet > rXPropSet )
             }
         if ( nFillColor != nThemeColor )
             // the shape contains a theme but it wasn't being used
-            WriteSolidFill( nFillColor & 0xffffff );
+            WriteSolidFill( nFillColor & 0xffffff, nAlpha );
         // in case the shape used the style color and the user didn't change it,
         // we must not write a <a: solidFill> tag.
     }
     else
         // the shape had a custom color and the user didn't change it
-        WriteSolidFill( nFillColor & 0xffffff );
+        WriteSolidFill( nFillColor & 0xffffff, nAlpha );
 }
 
 void DrawingML::WriteGradientStop( sal_uInt16 nStop, sal_uInt32 nColor )
diff --git a/sw/qa/extras/ooxmlexport/data/dml-solidfill-alpha.docx b/sw/qa/extras/ooxmlexport/data/dml-solidfill-alpha.docx
new file mode 100644
index 0000000000000000000000000000000000000000..9f2c46d2e827207787caeacfd79af742e09c140a
GIT binary patch
literal 17049
zcmeIZ1$P`tvNqgeW@ct)vdCg)mL*xt%*<dhGcz+;%*<dhqb+9EE6?tJvom+j_XqB+
zK3$c4IwLCTsf>)sj0kxt5KvSAH~<m=01yG7NJISnfB=9fFaQ7r012!mWMl1UWbLS{
z>}G4^@P*#h%91b-6qqsx0Q}Ma|BnB~2s9+f$OQ->2A`9^LDZ>%thzG}Cfw!RmdI3G
zw$lqO4|^M$Jl~$<NlKOF7HW3HbTgknkHfG8%t$8B0Dq#kP+XLArv)alDjKIXs-7Eq
zND{#e91%8yE3kwc7VR4g?{Pc@kd(2f)DeTa3~`MDH+1)NGdjj;Rg2_k@$bqGBQSw@
zum4)NHIo6L?8uwdY;OVCGcgFU>dfq>^$Ug3ey`T8Xjdf9ph-ma6MyVA+|=Hw6#AT)
z?ouNUUkw>>sT%TgucoKzEH&?vI>40J(-k?5@nQBU!bEkF?KTEC*=)PPt%{WOHZkp5
z6`0tlYOH{3=5s3EyC6L5FXW4JD)V)e(@kZ{K{xm~K4%wv?A@~Cf~KYNQ|ACg$^s?n
z&NqKMwWAi5Ghy}K=dmt@lQ0+mJyvX`OPyY*uy@7?(eEh4)9oOe+Rr8qmWELpvxd^`
zPU6pf?|G-|{v~Aw*jx~Nl%}e}tD$UB4IYzc2xX^9f{Qy79IK8GPyoRDI|xAjFPe)V
zi`{(vF&t$-6cgq{b9L>FEFBo=f1m$PWB(Vc>3=<XMBJ(*h#+k6IoRgcVK0tVXyV!B
z4e?wT;$I+vsV6`#@Z$w5ogMjv-{n_z4sH&|<QCHd(&u@KKY>?&)mX?`O4k$Hv~aa*
z4u_D}7}iSjH-QtItTD5;S!DPWn~?h{f~h=jr#@Jal#ke$r6ylHXt-1Pdkn4wlu~r;
zIL>WE`S;GD8#R!$)S?v)I5U%TfyN<qcHKqzFC5t3(8lLWV_|5+5MOPU>Gi2CB?j#y
z&8co_u`L;=$TDN~E1=o8%<>j)h2M3<qk?Fma-qVeu05SHKs0p_9GCOlhN^i8h%{)?
zy*!?U0_qt|`95se|I`sro@6fKkAGT0003M7B#?`Zy&=QD6vfcSz{%>v(EYY>|4|yC
z4>R}C`+xUQ5icVb$oQ{mezpx&^-JV(9R}NSdDZ0_oswx_lH(x4TL)S_^k^Ogy^L{M
z=hU1;n`YO7$_+4nWW9f(T`zIX=>8zOKd+^Y9KA*$sTDnqiC_(SOlAFU{sNwITrUx=
zOn`!TEv34|ytZ9bS)iu=33km_F&<qh=t2fpl7)C$Uxqlt5ikA#qkwVKc$fo@N2>59
zE0kd$6Q0UQe~aQQiyBt{ElA;QV@&2k24B!smz}MVhnC(Q-_KSFE=Q~bqYE$bZ-O0|
zIuRs|Xj}QYSE3g3^F!}zX;<P1t`QNB1o=n99fFRxsNP%@S-miRHtuRy)-uJolZTGe
zle4O4Wm!XN7Lq%bvSDgV>+kM~9S1sr2z=Ui@c%T%U~5TZ!;k?0AzA<c>0{{pF~<IT
zbe(8EM(>Cxy?GVB639n2q#=Dd1;Md2t`lV+gjn(ga)?wV*}V6<{$Ue1GCulq^k-%k
zex+(#5NQ8xr|ad;fJ6V`!<cRxCpMe2!jsw6OW<n+U*t)@G#$TPc6I~Fdzd?RVq%uM
zdjk30wUSM;oX_ja`TJe6vvr{{-l_x}FroyP4a@c8NO_rM6k*}<a;?rA?z3@hQmN9b
zWf4;xca+VFcse?|e?BI6K^-yMX&vY*-A%#FSTRP+gH{7;J<4=)JbJB8B7bpEc)vT+
z;xdJA)^VcEL#*yC04KAvw_r-nDRx{J_35Sv5jB+`)&0>Uk+KtO0OFO8v=svemX|mP
z4+w9z;O6CIjPXr_l~MRyrSRYf_)PzdMH_oxsLhiH&J{m1gm!MT9(5<c8|2=PsUk!k
zm-hs4ct2M0hKwZSW5vk80!*~w_#meI@O?^6Mt@yyL+_1iuAPHk9jR-mD~PzVp2Lax
z{XSPh;vpCe<G^MbHWQxa{B?SC6ZB$Yme<wYm_JhAfxcBj^GFnw)tpHml=teG1rlA<
z{Puz$r_lk?vf}j`<y#(SZNX*n58_GZ8}71=1%WXAhh;b)iSIPC^MZN`1r+o#4Yzgr
zlDZHeCH!G4C?!I^h?WTRU-L%kkvr-z%oP39*-+`*QTuaeHYP2)YI>%%YIKP9!bt)Q
z+3(|r<xXPvlNXRoZ&(YKniF1<{7L*~m)FkpFi7e_{7|#yIiU*1@r}h3z_Ci$P4_vQ
zH0TJd@`1qNAI(645k&Llhh4pUC4jvW0e;SE5uU#u&8}D_Z!njf5eT~<NIY2G{Ma}m
z<&RPi(>;OGPN1jL`CJG@7?{wokADGPH>(f6!gU1f+(;5E44mI=g!Bn`_(F)K@*?X&
zhFHquq9+qVJ)dR}2fq`tM)(@}x%o;!%pFbdbeUW4g}bUIB<dAkLXu}?L+c4JT0Cjn
z?A7_p=1=LSckeJqdWPTUn+~H^)rNjk$nSgXm5(?is8cvNj-G|OI1r@rRpLuSNIAES
zVaUf;R3TVK<dwW@0x80Pg(uJp2}yii%(YJIuB;JDEY`Zq7rXL`zHoyf3+96m2tE0b
zyG9qFqs1qnQ%eBuYK9;}pz}ly%Zm$p@*{AQG&rlr-UB7d3lW76IJCP&$KAUj!~#S1
zwU3n%Y8Tx0jo7OqmYKzkKspCj^;MR^R|v!hu$pWR<DEfim7P7CJU=%q75*%?U&E^o
zm4hCLUn7u}J=(qqgV;?>1+?uu2npP+Dilm;!a0n3ZV_?MCV|JGxP^haL}_#o6L?yF
z#CD8o<_V6#3VsJ&cGC~)#m}Fra+#)~Oo&j{y*Su_Wh~Br$7*ly`&>4(CkVmoY|=5T
z)7}CMqZi*vUu2W<ID<YZ7RT(A$o;l;tb6jLfBqE=c*rXZ-8Kv%>L!jrvjbE(<qeqv
z2~nS5#u2ij9bY8aI#`cuie(dYrYW^Ah`qn+p2#A>e;*EHWs~P<z=wee6+)}&>xLlb
zUFB%{Tz&RP#Z$e>bCueJnfWlA_ha2yI>N~Cn}c>y_7<%-cEMqEDXt{RYAK%)JENK6
z1pn6@5=+YJ*^~SoS~{;5pJ!0xp)Qb+`TSOEUodU8XdOP&i{sj3i<8#l;{o5dMd<IT
zHr^O}jZZM3o?9=f1L<<p5PZCz=J?M^Xh8h3hgEYLde}Yq-Wv9_<;)dh;;;|mKY?A&
z-+=4{joS=+&XJO`XJiaWpCLUn<1rhX#|Gn2s+m<oI?5(EgNz>EAB2WpQbj@PoeHic
z(<hY&Ba42pxeH*FQr2wOYK?K^l0^Ie0Nq2!nC^RPmpC7ekTn0!))u1{7|AnX!IoU?
zVGIzKy5hctsVhAS?Ng;2lQ>n?s2q@v_|V{LJSo_xGenHHp4N?_6(X+lDwZN=_BiXx
z;!*oTN7i^d@liP6)g$$SAeSBz?_;sr)`9!QB4~8Op-ac6lIYh&BZ<CjY-)wOWAmL^
z6SUKwc-hXjy%kOEyhdEsgVa0<kS)R0gJkyBc<pU+{YGx*RYj*Hi(}4R{j(gpo2tyy
z>%cUHdM&JTw3R`*%SmGn;Y{6h1E(yoNP?Cd@MDN>6}MU$F0t#&)bv4AM*a}O%3e<%
z4Ol;1VbFm1M#XKzk*zUp^73KCL{VAQ8Gvc%Dx>m4dk4!mwdmG^@2fl*f;K$-oKL#|
zv@~hj)^Y-xC#;UU7NsrdT7$#_Mph67Gvd#<{Ysv+oBXVwBwSl7i&jP(2RX7G@WhHv
zVxk`cW-_K($&v<p+hFjvr+YV;Z55SA%ag^zRSEMyPnz|01+BaNI{X2II8^;sJAHXk
zHm@G2Ld_wFWPl;Ja`#=3C&C`i-;fqf*~rj0;Zrz)f==e?%wCH|7I_bAA)ZzT2Gs$A
z?<z|GlIJH?D!jQ;rq%h-AoXv4)m4V4=df}Dz0^eG+S7<_DTc;#^qnS$K=O)Mbe!tS
zd;USh3ZH7O(XpS&tIn9KZo$9XRPjn+9(I1Bs|AN>vR2;v=}7C|Gh=A{1?*Q^+w-qP
zJivW1xY3!Zf_oV*{UlDMPSAv5S!~@<)}R#)3;PsJtoV9dOv5DGw{j5}d@%O}tr^Kg
zO<aUCd;Bp}Vg%o-rNu$$@&*<(sq58<ns}7DRdQb5RmV{vey{_5B8eaCEp<_<rLv1w
z-%(6Eg`N_Ps=k~m7aWo~^nO0ARs2>MfY1A^&Yme-ua-$xeFckjnfSx7jgFz3fe&fM
zLIdp{=VyfbNaSi(RL3X2jL048m}1cz&^9M}J$@cjS04N2&+WDm)tG7GEZz9HUb8`D
ze3^}3vlgT<+U$$x)U$tLxsmlb45o=#97RRg7HnfaGsRcmstYL@0Wyfk?OfE2?wz6~
z(jy&lNl+<v?*bJPI9YirhNDaDKSN8<CqEjYXDzP#bAmVTVyUAo2kW<2YHuZ_l)?Kh
z_a{~|4QV{sH%U)%$8S1QXjDO?wa&0RP*T|0F|)5=Sr*i`Q@30zkYl&~+|6ho%hSO-
zn`E-2JVTrT$w4F5VAQCX>TS{qiB-$#<{E5%{hIqtX%_BsV%rn$d^U+~caD5!bQ%(*
z2Pvo?*)g!1ijHBepa984$`0UIDANlb>tR6#biAe=e)7da7nf;{i_&*<Hc2Mq*6mQT
ztcI)9ARm?zTEfe#qbR+uT^o~G>Z!X}79>Zh4qSs8cdn7I?iNZg)|4qOlDunsyLZg+
zkT27|{uqq_Vn(K}W0_mjT+7zUIc%+!1}+P7&cPD-u?H6r56Yn^ik|;-&FRp)3<a%n
zd8`rZhUO-;z?z^&m5<zcy-_RvF|p;bp0<Uh49WUbX{YXXl!2{!WAxG)a3edBiMnpY
z*a2h7T${dIroy9yN@i^AlGP@WHs*yQd#A(Kht<fr4EDVTvR0xWw*pe+=$e~5pvFSF
z3<%LF54`FNs4GlgJ@Z@{cAqvDA`qr=ts!X_ezPN#!>4@znrZ)pn)8V)_{cDofYRQO
z;?25EIN$qiq!#r_`Do+IIz}h3WZ};gc_6!&uv7VZznr<iY1qyfrD@B#nP?@q_uCuJ
z4uK);s_HS|qiBpj0fOU*hJL2;G6m;W%Hi(_ca$o=QLknG+9xKfI?G~U$Q@tikaa3L
zg`bf7f!2&}?Jubx0tsj1l|0v3>%rM%7>aTk$2L}nA2Q(7+f+ZoM9ln4e(q^Oq^7Ya
z_6w2Lz&<_bcR#23{#4dbjnrR(qhVwIMRuR^UGU8ju)k5Fe8X8*sB$6JgVgDv&_--t
znNgvK2<V(!{Uw}~**#7d%z*qeG*ZTNnj^hjaiIO=6S#o-W5+2(#q(1iHnr@JB-=7N
zeAgdAk<zeWI$?=hRF9A~5z+p~2B5)yQ(}V#Ext*(d$24>^`KpSuze@1V%CCOa`(*+
zF3BGD5AS@09!nMEuUI<}bQgrdt|0C*!xwg!wwdB#$Ax}00ZDx^L{}V|^aXiTF5sYg
zDkWrV0MFOl9HqBj0*LM&DnFt6pH49VEq}6lC4n>&-^%SnH&aM>l&u?+BBW2|FF^R3
zco1hb;j9h1Qg-?~(laxgHB^!>hZaUWmMuLRtN{>v#+<@Yv(g+ujnG)%uta!34t;a4
zhniR<ClK*>@zY<o122|d`*wShS%Aj9#)bsy4v3gDuytAqZ9zYqIgehf@qb28$*#>7
z>tiy#8EU@1&)!l1%MirpZAX*<-xKMiF6FD=8r}i6r>{NOMDr65SQeei=cRc;dWL$2
zq8Q<Sy(vfD(#T4{;?yKJMgTQAQmgdCj(L3O8V!Tn+YApE->Tryu!Zp)ozeTu5|Of+
zq}#JYRjX%*nhj*~Ot3vYY{SKBe{pE}79jNOTlb=7XG-887LzgEHElZYB0*;h??bld
zjcC?oxbtyls91StAchO9BM@FG{`evgpF+gmb%l$!eF@MyE#ES1Q1r<Z-+j!q)uonY
z7mbYy&rsSd_)_@gfy`&(YJaT9&aM5vH%Lc3)@`ouAdf^={H{&tV8zh(?x@e%m^hP-
z#reJ$`Lq6PnOf(p2&zouYvR}?A4Nnh-DWXJPNR0EXW>wEoISAgw4_Q&xGO>WO=?NK
zc@K7J5-n(|g|Gt)Pqn;xS{05njcbU^>Opx2P70Z8st?!lf)xOEFv~X2g~on4L)+7`
zmbcZEBhqsM!M+AltUrqXo{tl%45c$qcAnF0XxTEKqE7s-=d6woIU!uS#c34}LV$18
zx-n6MIw(T!i}qYal);i~^Ox3N5u53x>CJYEH*QJcf{5o%3Fkc?ah5akZ6$eQ8q=q6
zR`J5^_ggrW&L$GBd8k1@la9PO@=5ELr^XHWMZbK_6iVCLnpRu<wj-nuzO2EFUPQ7g
zBe>BLK@uSRqyANOE)W8W^_JnlwMzh9j9j|}h4x_Bz=xH7cB6$=v;Lq@L@-1nX^nox
zyj^ptK9M7-0Y_rwbLJV0<>39Kf-wbY053V%+>Z_cr19_E1-^wzi7c)lIM*r$bOp8!
z9S+nO4LSzMPffFG2Y9JEiK<~Xiv1Ajgr6B8NuDeHA7a@7ap~o!cj)>CXOcG@ua$Z{
zQ7ntrpHJrp?jS>1_z6{{v`&*a*3!3djqaKHT$CgoMwNPg#EGnTEVz2O*Q9Hi+ng*y
z<c=hter*(kvXj;#{hV0T!XJ1^Ux1Q`?2>LgL7$oGfOiNl`X!0GwE4hG)S68UF@I&p
z6P5!U4g=L?a$w)uBmI&zTrXL=@w`GY<Zx`|-sW<#bHO4EA7jZ&1Ke}$OW+x?HU)8X
zsIXn0OqGe+(kbTph&w=9+$QfXF-1JikD-)4i|Em@jh&Q$u2vTE*`3+?SMW08-cpJ6
zhC-LR@fjJInTXS_^#;lw$kvbQsFaskZDdb9E!GEieF&%!2*FMpTHI-><X_$1xMYS7
zw297Cc<BM5-`sV1EmNB2ln4~v*(VlPgKC78yvVo2x5BG}Ec)$sWCp;%b#P+_%m%qQ
zNMb77sW-y|250B&sV>TY7A)YnXypV1I~&lSM>KMiK4~bWgna>vl~a{eJy@Mn9Ry|P
z1<|3KQ8Z3BN0pe8^$(O@bi_QdfR$fSv|Y;3w71w;0YVgUrG@>j+WWJSlP4*m^C*UJ
z{Y;9U<*p-i55tN*v#70mCF4GAH`fA+AbUoFW<={aLVF}9{!9dOMd7iAsHut0X+H#>
zr7hCTo{KLQBbpOgpP2B5ez|cv4zjnQ!re3(2CF^PRZdm4^m8DbVHT$iAaHLQ8QSaO
z@yz4Xuz#n)UJj+}t{|*0L5IN;w1=SIvN4`Oc#^T4pnC&rEdmh1<wgF*I~yTTi8?zg
zN?|LW+JsI{fSUQQWKDQ%U={wGj%tBsXuUZd0Wf!c-)4g(1l=Xa?y9s4({jEI?mAeP
z5HKZ-S@-e$3yawZTgveoQJ?g!^P}3$p3GQIKc#o~GgzG}Ng-F1EBRv)Fih45W4twT
z)5GYo&psH6;&yPPLt3jw`W=m)^7>sN;bnZgx(ZqhmRh%ucy#x60nI#Q1ZqCn{Q(hc
zHb!UNZS=M>;P!bwhWRURRwsCGOde|fFz{Q!(3qDDRgG}-SspC`)V6eBATDj)Xd%vL
zem4ne^3lh`+9DynTe85E6g60uirq8_x^<$ODrPTa2<L2`BW~<1$e^4XSkP5Jn;a-)
zdJ>zPE40*v?(C8+;oF-*BLNg<{#u6epyRK$iE5OdM~D~jy_40_Is1lBEz_WB2tv57
zb3?p*-P-<AW__odQ}1NI_cQ<J-YDa`5LF2{08oGf0HFP6-^$U{$jXS}k2BNnozW8w
zIh$2>)GmZ27eYrH0}5ws2&ZpLwdr&+IQ`Zk_-0{AOY(UFvl3o7E4#ixec!)^pe<R2
zeAV(pUn+cNUFNpLo35@AQ;Zu>*NJ0a`c}zDiu}0y{EkmhTK?l~2o?{Sh)Qln=hc2f
zi1gA;Aim~w9siD@(oLK?12p9_u%Ux0cB3)!ezWb{4;5j3e?2eaA9kzZ36ejOlL`>}
z)O8N1B=oGuMIzAJzu8hDK0qD~TAH=0YJK^}B=ad@3v+k_JGxYET0Z`U-F}A`ygDq-
zz1u`TM*_tps0SRvDKbWB*$5a<fAP*&t~)w-uk#AAPq9aMwLCSuxxvl}s@fzxMYE=<
zp~}X4`Maf{ZH=YtH(O=K%6ptj8Z9s{5IuAJAHQzDceo2q0cy?zid2)BCq#WJH%82o
z1n%szoSPRb*t9*v-bORVD`ku4ERE{a^S})Wa2y^QSIi9@mV0nw1~?8cA}5WT+kS4r
z4ezKOUcAy&E(C{j<b=-b>A_dxt(=?8!wjd?pGrPpcmFWQ@(lJjrOcD6$GjG%`__oL
zxtoUofHPE|0WCF?99#;aJlk<4rCfx);O;5J;@KN(C7OVd(4AIp>_AY0#bV08|M_@d
zoy9LQgph^D|8V@U-M0(Dulaeh%qk;rUxlIT^<-*@AfG?W`}%4IW5HEp@cpTeqU+_w
zjSX?ugnTlbA^YX-WF)+r@Ab7!4DCY3Pt52cW>7dUeGl^V8WWX8)sBpU#I6&q4|4A6
z+XQI>XHS|G*lX4|+?xq1<5U-1F7E!uEj*z8d}voM`za(>#IUeDv<#QLC7?6=Np5Xr
z&97qD)TwTq620aJ`ig_62A=8zZQ&?GT^$n8PAmvgVwcv!xJ>t$vZ(M9pHXKWUVLMq
zPtO#8E;%JX`AhMs9?^^7Nz=$M7m!e-8HYES!Fs2v9>cylTh@C(IB}NGx`*R_7axWm
zrw$}QK1jLb&Z5Lsi^bhZNrdwTDKC*6?ooa)(w3vXa1_TB>+luVXgo*)cuC1__Q=;#
zuXm0W)rO;f!&jbZ_v2z9X?_so=(W=f!kZ?gHsFteK+MBDwNnAx+_w%sa=8GJMgRT`
zPZrfCR}J25b`;7AgUHK*gx1+E+k(;+K!szVFA0b0RIED0`q<VxL8)v#w!H(*kuZv(
z%U>1qY(=-6UgM#%KYkbXxdYOr?vqO^<k6~bX7dH<GD!^Lwbp#w&Px@i$NS?>J7qRQ
zC+SofBdY0o_>$;q!}?`!m4`GIP6-tWM}b*8*$J;80r)Mq!w%^H6>a2}f(bLDt!-|%
zF&whCm#_+Js4cXN$NHS`=hRquGRfA!zC5g|g38P32O5ug%b!A_mAJ^|U+|Z<(Reem
z*`S$4%cgNn9Ykr;x;0WOwMRnzt*iSgs)D##n!h7Wpo)ZO<<_y+awP<ez%1z1)R42X
zL244!Tv2B{vRQDR=!pVbx%|psqZ@?5I3~v0_BG_2b)R}JvCc>s8qFZqM8JW4+H(E2
zAi1WQc7kKe6COW$f(^5@zu|$xu#fcV8d;tvHHwysf<kIqVfAB&CmsLFZsl&!RyKHu
z6RcWlT}&Un*C@U^5bjwie%bJGJiStzi394V?d{i7zTz4s2t}d=^rTogIF`g9fD|hQ
z&AUCyxVr+hvT}aCL~R{-&qcKakh9|#sX>FC^16B{k`?DWHkv}uyiiQx9whAAu%)3b
zZ@jV`IRP?lmy~Zgx?9$=TC38n16)$yuOd@=mhHx8Ax-vGi%qje(5;~ri2~ec!XUn@
zj9Mq~bWxM<Gl(bJW4=!*&pbn|@l}AXfbeO<!9+L~HSp3a_vb<vBHca%V?!wM5Nd9D
zV-yjUZ27OeVC>1iH*=Yor8EQ!6|58!A*0@rph11U%b`s@;t5jcU2UV4NJ3&pQbATL
zQawT9BDE~B*ecst<wX@NNjHy61Pb86@;UQJ63mz9;M(_epw_6pU%`DS<{?NQ&q>e<
zkr9et?Lw?IMKEqF`(l%H=wYLQ#LHw+kL{)ksGn7x9-Vz-6X85mwV+wd7#y3>=DgTx
zA7oT#6{cDvB6@|m<EQpC?s7hYa~i(SZ6bbf%?%S=5>VEyi-ed3n}v_cv8xMUPhq99
zSgCNDRUPB_1#{*I(@7CgNyZc2HDz{^$K|lh)#@5MI7xf5v=T+f%I11!_^o%ElYba<
zC}qlUpFzXZ5dpUYY!jATS^`D-B2!ZDC>Mepf$)(|tln{#;U7(#5sj!q>PN`$*GG=a
z{}+;RFmiM>vo>+~ZPpr8rEFF?5jz>C-}R2#qey?qqF7}RhyAh&chyopHnK@zZ3?{r
zi>uptd%}y;pC{bNF`bDYc|3T96YF$+?p`)TSdphnlJJfrLqTk`ELoz9uXg!$tijBb
z6dKG(rI(7^O=`oS`)W6X0bU`(#v+K(i`uS3UfEbCuB6o59mW+44eGB|%2n&S(3XJW
zwOMLL*GinEnxNnzZld9w25Y^?eB3|@j-e!LK^M8EX`(oMnzYFHA`J6NVi&M4xrhhx
z)vI3_qz|`%kxqr&eV6|ioRnpL{Hv7630JtgS5`*>SHh~)`X|j7ara39GmQWyaYU0`
zZP^l6$M~siE_cgYs3vZ>TBSqiiR<y~!ErbbW1qm&?j5>H))_xzTtG5dbvObK5nCxH
zyh`>|yi`VsjpCJrF6A^^T;OiYaNInQdc;~%lDfbWrQZ0I$%JoCedm%{uU%b|M2u@X
zcvFGFU6gWRB6Q*%sDpQWCRp;RU?btD_xBw`F;6}%(01!E@<y;P)QScTI8+r$v_ILd
z2+VA3zp=5q)m*Tg&ce-o3BLD3_qVNJ77t0?90u1u$Sj(|e(VzF1knY%8~fq<DW?Cv
z!VE;6J75+cvx4a{&O3l+#`7ei@Zp>1epgJ76qKGW(-np1s|y5}1z}Sk`)iS2Rv25p
zxlm)$Q-G<hvp1VMwuGbOj=iPyC(qbfQS3U)#<au3!(0qmE8)83m-WXJOnYxH_eLE&
zp(^z7+vQs(!-#-XxW|j$%8aR}E8+~?5fpszz2FN;CFbRp!od9AaLG+wC8SGeTdKZ$
z@nsdH3|SC8&aak{)r7!rY*%@?qLq5T*6ZMA+Gfska-$_LMZ7(4_H{Uqx*AWELl-Ub
zfZdq1`LYq-N@|)D#9EKbm^GoaX*UHkP5Dk69a5rBk72?$N!}r?!<Iy%R;-`i%9TW_
zQt8(@VAzGJJWom#Pp^!6kE$A5akRsm!Mnb^DV`dGuwP?t;2tm(I49=b+1f&HhidkH
zP3VZK`;iaJ;V_*ZT_=)2C%SBwu-#nGV4LkX*ytMlixfZ8lLjlEm-Rf~HuV!q5P3=x
zrGU=*V!vH-5C*Kpy!0K|r!CpwV9gh)9MirLkg6j~=bz&cR-*8A^>U7Q2MG%(#|1=5
zIjzM%!<ZC9c;3wDy=DYt>~P0Gst3tlOvE!345Z{+sw?N!>vUs%+@^NB62{*DQI9cl
z&}D%?0`e6fU)2A&s4hnOO8=$G5z{@AAWVqhTWwoBw5`p{iNtk|&4h}V#QskJGiPU<
zal>9|^9nhel`=vd_c7Ac=v1H9Cjs3KknsHJQe&NRX#c{Vpi-r3hF{B(Wu&Q$m~uee
zjSvduZ&&)MtFY-N;-xPMWt4)N4Vf!Ns9Kc+)<BWtRG%rMNtn`<C9_zuy;lcP$s)*G
zBd_UCZ&kkNmfHkRDVXAB2JzJK1ja<YruAUN`dfZUAfU_6H`*a$)<C3s&f#}6)qXHa
z8{mh`G(yInYp2bZLpcUfSxJ9#{aj7maN36&Ix(0G>QFE56&9^;f5i7y#&awIOr4-A
z@;)IO|6D5f-Eht41C{^j)<=))#u0qXdsch^0QP?{b8vLCG;&Zgb2Jq(Ha0SF{MRI?
zwW_$wiRiUi_6m`_NrZt}Cm)}xuV<WVPCpK6o{c6(L~S|t3&!vD$x5PWXQ_5Ql2@+3
zZoXJ+-Afbd=RJWg@TS{=9kC&&3&oJZkL_FvHDb?<HiUcKs5kpeQlsr}kIZ`x_lXo|
zLkK=^m);(+1=W0VxQK}47^}nSZRxC$^rHFws~5gxLw*<fsl!h0CnI{KKP<K{XH*Bv
zXB<Ca{gP9l<;^1Xbsp$7Nor|r$)T4K{RCRk7y*(*KE&*e3r6cbnnx0YU#m<T#4xKC
z!^=n0Kirx=uq{$G9jhWv*UAXJ@AD1KZsHqAi}8NrO`UH@sVMHi8U&tUiluM^%Wmat
zcfU;TtV24|l%MYSs%ZQib`~4fZosb;s~$8SKQ=oEb^{}Hu+C+O{mo3Za%75Kb_4rp
zN+eZ?2<YdOAaWp-T(s+^N-7)rJ)!J}H=ZO7!-X(mezWH7_{755xSZt&X%n60hCtGs
zr0?Ny;Vr*FHwI1(C=Hr!1oKb#<`s~Ry#ZzF66a~v8VAK;?h)rZFHAnOKAppiG8v~}
zQlE&<{5}gv5(;ch7^OgBY}h6hB!}ri=vvQL1lY8b(n&m%s`lbh_3!b=JdVG#@?@fu
zs7VHNFl7ft4=j=Me0QU?V0LkHy{VBGl8WJR(eP|&QSKF88Q-xPSu>q-b)78}9uF7?
zVY1A$CnVBiBAdq;ZJWblOmllkES)gYpmso{19Xq-Z`aoCcFS}t!}Kj(Bvp4wo`+SV
zQ?;kGVZ(qESfA??8RX2gdU#hcezolZu_IBXse%^fyF;|@|Mp(Ly)D$M)^?e#%gTF*
z%$piSRpP@wr?5p)KE;3^jVj}R6hnpJqXy&K*NsPpTPaWOyprMvU55YC?3;l}fG@mk
zTO^s5e`^Cat7_8WS2UVe2c$_a@gx3?SoS&G^@naC{D!v&)30hUT*D{#{(ey^>PuOf
zLKFY$b_9w;I-+vb`MeSb5js<DwR!!5j|S;SgE+@QWMVs$#{BJ6TfxEP7j(4QPMPRT
z*an=k{$}|6p}7|gkc_+H7aj8q9`yR56cHRTw8gR&E5p{|Bq~`InPMA?F%fJjr?rzM
zq>@Q$r_J$^>;Tg~WT4_J`kX8+pXw;S$<12dT?>eL9u!Zu^qZbNJ*c+p)FF;p-OHuc
zLx#cpz}wBjddA`i*?sr#x8<&D1@IZrDkG<$JQhng2bqjlUEhSy1ud8}*-~c7aQFM_
zgIg@o-y*Ap(NVPmI3qK#_$XRhfpb+XH}jPC^W2@CG;?u%nR*gnzC&s9efCk(KDtVb
zW_n6jyb*nbe3jXD&-cV5IDI2ynP7XV*vXl-5S?77IUaM(d=!Cqob8Lq=s^cI0p<#;
z^hA{yAI54I%bqMe?BU>$&WQ7>-BkdFUd96#p}^TduT!FK;2=^Lc9sXTknH|B)Cfw*
zeEhaE_4yT2nhrdz@KmFoB~uRD86b)H6ZVxQ-s~RBeWlw?Jz*8mn_i+NK#0d|_!F%r
zzFg4;lIL3W1(NTRiU6>Dm!depJT&@%CAu=qHRf#~)>ov+NNd1xDL2(k)YuqCm<9-B
zL8kw)oX8{HAXkS2iP8{a;TJh@&`G8wUA+^EADjBRupXOoq%lDvSE4>@t96p!i3H&5
z4C7uT06VxHNuV!=1Gt3W%_RU<Yy*;(nL}NcE}jEeTrSshp;^G_N)!;=+Eer8EnPw3
zz9Hd`p&8_(f6z$|w;PH4@P-+&4QNu<=deKNq(W}c#lJ8$#rz<K6WV~xdD~luW5#tO
zsTp3=<7$-NfFxw*RnK8|Bk{dKh33E|waL8g%548b^bs7t&v&vx@~1>-ej*=Oj>T~R
zOUdPe3PlwLr0dUr+@R)9zF&uNfabH?+XRD2Y(UXdacGN^MsR?Hiy&Z>$!$OpQ*q$q
znq>z!Wj7#E>jHl6MG6pk6n`#BIz&`AgixuW{Se5p{pO=*OxBeu;Wv>FBzp6H^JInn
z5bY`6g=5%uFS481Az*+0x3I%EdVZrHun{}-30^I7U9J8W)>-}!$<LJ`7d}J{KgszM
ziCMqp^bdgDM{#@|(G}KybEW+Q^4F0z97E14QN0gn?afm^`WU*`{2Ob*_4=UayrW;G
z@xg@M8!VL8Y&k&1aI(F?2jFiz7WhJHMCYA&vnVw+F}_QP`06P95|4XZ^v>C=ppe*-
zv|dEFiDznFQpNM3w#*jCq%H4u`)euSDJ$G~iq9N2IUXfz^aZQ&%Dae1shy(Jbtq^Y
zV~MP$h>Bic++bqPpgMwrbJ{D#=v2M<7!^2F_WPdRo4Cr}U|);N^(S3Dy}Y>n?nqog
zzMIB6k+s8_ZVOf`ha*3#xO(tN=mu7o&D-kgls8%|QYMU@Pn^rD8E<TyPN;S$If=E4
zn0SS>JKf{*4m`9~<t#T}onH50`?Dl>n(+l7H0OTo5pFaat+l&<1qa>GwcC6jbS&4T
z&Oa#S(=9$YHLS2O5SdpjDuqq^G4%AaWpOVC02xxpe4v0egG=!hoz^WwSJ(ztRYl1$
zdd0gYO{)ej*LVHcc>NA}q$p~3AlOod>dUKhb)&TuxQr{mvfLNCk)J@o92Ylv2RAr!
za{Sqcc(HCidDEA<?L00fbG5Nsg1S(w#D?QjI4}bAm|Bjc2Vq(%*`5ys|KwJD4e%C|
z{BStjKC+FGJ~Amk65QnNZEPJF3~cO;{#_*i^ndA-06;|Cm~0;-qR74Yi_o5zKE*y3
zSt)1<4K>jWbpK>saiz#hj8$4v^^n9$3@}X6u7}sb<kEm6#V=EsMW{;21aeT3oRovl
zl~N7b<2yL0Tyki|jjHl_yqv6+lT*;f_C<7`G_1Paf#{)0_w9`(8!k8YFnOAQB)%Zy
zQisx5k=^DtSXfee6kBv-5vi&B7iYMC)6%m9C*~&P!ihQPTg3Bafn^hy-`HlAxNQCr
zka#u)lgVr^xqVMQ?ik8r?64Rf;BnZmXPHKBM*bxthJT>?dg#!4UcJOw4OU*oHi-ph
z-a^akr>26!){H`1XBsy@Lb?vrmdkU`t(MsYdQ+ZPJ~hon3#`}o+9%`gd_>msA#Q4h
z_~(!TSQRV@2K~6f<y-%?1C2D4tHogM)=ltpggv5_uCQeOP%(i8GQL;Z1&n`O3%tMZ
zaOFS%0G>Pm0K#AW+CNtG=~hY^;)p|=x(i+q-|meGSkKIi;+fMjR8#v68_#ZO$G<B9
z8Aped+#gpLLm+<jvnHx`^gGs_a-8bY$n?J7W`fPoWtL5dN;*54n0GSVGt(8hm%2Z@
zyYA7giZ39(63HQHb<F+<Xu7^15}f19#@|rIgn@wP?Xlh@ow3Wf6vs>KSQ$~qakx{E
zw6xCHQ7S%QZpwW|dLMU&$bxqvR<S@UxiMqTmW^Itla{W{<G|S;fjKqGjZnnp4>JOw
zJ0(~y&{I|L%2)6nEo~00#7h9j!-H5bpi)y$j7MPyf8HP9o=LxflQ!1pO~X`T^kg5{
z?Co~?e17wjZ?;w)qQ(`Wp5&glBBQzkrWHvehWx<56XlTLTJB-DK5Dk#jT0@bc%F`y
z3KJ4->HDW}<oyrNG46&|LH~TB(#`xFk3oWFk&jxp6-7w;4J5rwxW@7DdS|rta%-Sb
zK=^*3(aPD@P3_k3c=Tw?+K9fg=WG`3vghYGX8IOucy{9PnT|9*UoH*Lwjg77#8Lrr
z9I$;qCS1Zu&m-{FfcHaesuP+<nFAy?Kz)JMv!ar7587~Yl$>!bG2P<yHQ|jq2uBJ-
z!}jv*C%GzjFzJ`?6coWw7;4PQ$)op$%M6c=ZKma(k5j6mE@3y>)jsbLBiULvj_8G3
zZ<oOJgyJu9(OGM$4PbMzj7V?h-~u}WoYc6EluA<@OE7HIIxo!vla{deicN|scxO59
znS>cm?3k<^EM>BQ(>hOHT<aavmayhN8NDlbt?&U`27w<TqWuS=WHiTuGL0tj)!*Sm
zDDbE(L|N-fT!cx?+{IY!3qBfT9}VW5kH%I93HIeF-VCJ4A*5W6?Lz$#qFO*ht&Iw{
zI7_FJuQ5m=Jp<chWaxkwt+Un;>f-m+FZ!*ci&PUT33ETf_o*YD95>sD<ufN1y&B1V
zpk1_LDP5(0YCJu57k07P@P7D{R~`yBR#$8XfehpxQcE&~pIR6E7z_?o`Bp-i2YnVM
zM>~yfxH%Xre*E-K=Psv9TGLsw8_R314s7(PMAi<NoN!!YPUPDyz{GFfGitm1SS@L&
z)52|A?JfP}A{l1`{l3&8EJiLovA)0qg8~>uwQSvz13E={X&wl&+3Zi*>7o;<Zjig!
zM6Xg?8G1R2V$d?9-;yd9TG4^I+u;4-7sa6=f8wX(re5P>8<r#E*AXW5Od9*~>jLJ{
zaq<&FXRE?h0$#WYo{{|0b`9#9<xOi%fMR?HmVxLAU_sph+#+R>S-^7UmB@$cnuE!j
zNg$Dalg*>~`s*0902FbDkk6Fk$~!!-&CDn2eQJOHWYXE(8F(#c{KTZg_)3=uOavNF
z*y$SRVE`OW5UjkEcSF~80$VIRmJTi!Z4+&>3hZ1|#W+k8b26b06lSS4@<x}YvyBHm
z>o0P@UU>O>Yh=okqj_@;4GyS^nV;l-3yN$j2FeS{lLbpo_0ZItppY!sV(m~lcKzvq
zKN{OR>j+qK?NGE$><MX_Xg0u*1lyhq41y|`<i1NQdJFXLzrD$6$@}D0r2ce)uMj0v
z8=%lU+*Ug>dfOx!(j~Q$r6e_jNH)NxxE~~cZM3-F3k{;!0Ebt?6&8JDRRZ+KgrLg4
zaR3EI+ctcycHOOdKi!eZsR5ZswE+&o%S_8jVkiYg=Mi92{kRJ{U#~=PM$pJa>OAL;
zOv=p12@pxL0XqG=0f%w!J?#1+L~Ud4{Ct@!ih!jX<-et_QERtjd2_xbmtO)h|Hk3h
z8zn0vFO^ABvjkLDD|ty?!>9`${#%H4^#0V}Z2yb*hw6qzP<-563rA9>@<Y`Aq!47~
z4_rbk;XDR#?uTtKev6t@<cjheY0$<G$;0t-u*(y;fh~R`z{mvgFW$g`ZJ{VdA3!ta
z|A99B#%s)Fe|opRg-~hfAMjqu`<Hz@N^N6LMt#tA-rjC$eG+L-77L{;Ta4dz5}|_M
zBdE`CWJK<W<XtvA79_3lFkw@{N8pm6@$GmT-kG3@6cVd&(QnqZ;2BEpSQ#4$9s@5E
zw0UzfQ)(43hZ#b3d$kAWh@kQjpXVK6h4;%oo`ctPb{-h9H-N(ql-5<-01l+HSDQvm
zXueJ9DVl=7?=LEQVSd|WFWxzyjylAck}k%;5Mwdr_vhJyNwehMw(5aFa4+P}7>@2u
zE{?w-^jt4Yy1qJEbf_2I*7ml3dpsTGyWhDnF5WEVBH7qx$s#(}=7k`ry|m^w{ZZ*Y
z?bQ{6IPRpEKDCuxK1|EsfUxsEXPNRU_La!?T^qay!>`i3bfb|UdsxQ&e6mO#$D(MF
zTgGXLk8d!4_h^I<BnDo^<V1`m?Cw)ooh_Zg(d$q3>*|$x)Ds1d)QUS)ODSr3weRcA
z7&xVC+=I!?MmVxxZ#_CAJ1fChx4l?+og!rxr4c#(LIPHrHyyoij!Dl$$DdKq4no4t
zX1@regKA#nRD)uF#3A+~!EDjUe>;;n%_-hjZ$AHM%$oyP+y*|p$vjX1;G=ZnUo{iP
zAC;%dU-d2ja3>4mWUN;i5rgi*+#&p)QxYl)!VtM2wQ-J$!ijkSGD_$QZ;-evWj33+
zlvFSzCF_a+qK@rPc6{xJ$(y1k6vu*GTJfGe;^dXK9!3akkB?0q9;8^H*7w>xG#2(r
z0y?VM{Ji%nyOzGN&veS7^969Z<&<DEl6_ydxy@>qIBi_J<$Q92pLK`MWI5+9bDSm1
zZHvGR5DXhGf3&m|DSY;J+A%GF6XL&B%+If%E`uj;e#36wc=S5Vi~(@g&x}mj8kwZG
zw=*(Jx<XVz!QciL;mnu@opRx9M3AQ<Ei?x>Wu3Fu{ko2;5Vh6N)v%V=cBpjLfeVV#
zf?yt63Hy~+<8QUhdv-~+%zPFo3Nd4kz$^{Hkxt67M(LHMe1s-I?MNN!JS(?W?wYF%
z?9|<h<Xl0H6I{MzEunaomO$BFWm4EJRhSrUl2q?M(i0BH*BAR@b|DDnHAs*CE}`T|
zFWyc?Li9}kd=kR4<}Fa5hakR#?<UMVmLB@h<3i{P61(G+ML?mkOR0-LX7=VnEayWJ
z=UGKjcL1K>!%v6=MT#6dY_<Hrft<Xow?BT6*&hQcJ^yZK01H*|_Kz<e5sZFe`QxSk
z_=wCP{`V5%tF7(-tsp)i`}dKd)bla)VLK3(_%S;<zO^}9fQSyn=pTL60_nG!N|PSy
zHI#@^&R_l!U5BH#?3^Zd9?N=rBi=J1RUHoGCBIlPW?oAR!#c}8dh%mm=ym_3jP^5X
z5z-2_b}|I)KAg`xeA5Q^jlx&Tk|3yGb>TCWm@svHI)Pw?a7LQHJdnbkc<ZgoNjEef
z*Yd+oJX>FeFUa!DYPcL6`s{zUVDG%MTUAIu^%{8DlBNhncFYkIzh~{4>Nx<+ae}H;
zqT9dcJ&fzo++n(cSpr`edI`N?F9qt&K`|JTUc26Iqtrz7nH)C65yw@&q{nT5uMX~b
zv*w7ugN#Y}N-yVn-cjQ}Agjx6movx5K*caJ-08HOsjQFdQ3MUbt!FfUh5)@o_vJw~
zE7QsqXMnY1%ZXUT5PZ#R%}O3XKw^Asq=(o}WQ_HcGD5+sbtZDxDK9DI*eB=fZKoaj
zNvt8>2r3JsWIHPmrsT8>wcS~mKIju#X<wTkEMZPg5pa#=<G8-G0p*a>XCe&#4vSFL
z)NH1v!}|%&Sjk7Rc9n~0&X%6x`q2byX(mZe2!!{}1Ew2q`P7L!!FlMUmTU1PQyk}(
zvqMSe3vJR(B#mRlOxh$u==(>O&A&G4fq>~g0vZ2Yd;g!;|DWqWRN~7^{guIAOMw4F
z`1|_(L&yHBAo%Zuf31uBZ^DfaS^xj4B>&Fo@6~UA^7{NywfsM7;r>qk_avl0$)7&b
zlKvq7drH#ZS^PcN`zMP9;(xRF@6hkx$^RZ>`jb49{NLn%i#YwA!`~w=e{z_i_>Tbp
z6o2_UpTBOg{K*9XpkxF9{>O&P-^u^JK>m|KDf3^%_&wMDo%rtt`A=eJ?tc^i#XSF=
n{;zZUpVR<=#i#$0{ogaaycF2SFarQ!KR!?&Bh{V%_pkp4bi}s>

literal 0
HcmV?d00001

diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 90a6b9c..e3735e7 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -2624,6 +2624,19 @@ DECLARE_OOXMLEXPORT_TEST(testFdo73556,"fdo73556.docx")
     CPPUNIT_ASSERT_EQUAL(sal_Int32(3751), tableWidth);
 }
 
+DECLARE_OOXMLEXPORT_TEST(testDMLSolidfillAlpha, "dml-solidfill-alpha.docx")
+{
+    // Problem was that the transparency was not exported (a:alpha).
+    // RGB color (a:srgbClr)
+    uno::Reference<beans::XPropertySet> xShape(getShape(1), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000101FF), getProperty<sal_Int32>(xShape, "FillColor"));
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(70), getProperty<sal_Int16>(xShape, "FillTransparence"));
+
+    // Theme color (a:schemeClr)
+    xShape.set(getShape(2), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(0x004F81BD), getProperty<sal_Int32>(xShape, "FillColor"));
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(20), getProperty<sal_Int16>(xShape, "FillTransparence"));
+}
 #endif
 
 CPPUNIT_PLUGIN_IMPLEMENT();
-- 
1.8.4