xref: /trunk/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_svx.hxx"
30 #include "svx/EnhancedCustomShapeGeometry.hxx"
31 #include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
32 /*
33 static const SvxMSDffVertPair Vert[] =
34 {
35     { 0, 0, }
36 };
37 static const sal_uInt16 Segm[] =
38 {
39     0x4000,
40     0x8000
41 };
42 static const SvxMSDffCalculationData Calc[] =
43 {
44     { 0x0000, 0, 0, 0 }
45 };
46 static const sal_Int32 Default[] =
47 {
48     0
49 };
50 static const SvxMSDffTextRect TextRect[] =
51 {
52     { { 0, 0 }, { 0, 0 } }
53 };
54 static const mso_CustomShape mso =
55 {
56     (SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
57     (sal_uInt16*)mso_sptSegm, sizeof( mso_sptSegm ) >> 1,
58     (SvxMSDffCalculationData*)mso_sptCalc, sizeof( mso_sptCalc ) / sizeof( SvxMSDffCalculationData ),
59     (sal_Int32*)mso_sptDefault,
60     (SvxMSDffTextRectangles*)mso_sptTextRect, sizeof( mso_sptTextRect ) / sizeof( SvxMSDffTextRectangles ),
61     21600, 21600,
62     0x80000000, 0x80000000,
63     (SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
64     (SvxMSDffHandles*)mso_sptHandles, sizeof( mso_sptHandles ) / sizeof( SvxMSDffHandles )
65 };
66 */
67 
68 static const sal_Int32 mso_sptDefault0[] =
69 {
70     1, 0
71 };
72 static const sal_Int32 mso_sptDefault1400[] =
73 {
74     1, 1400
75 };
76 static const sal_Int32 mso_sptDefault1800[] =
77 {
78     1, 1800
79 };
80 static const sal_Int32 mso_sptDefault2500[] =
81 {
82     1, 2500
83 };
84 static const sal_Int32 mso_sptDefault2700[] =
85 {
86     1, 2700
87 };
88 static const sal_Int32 mso_sptDefault3600[] =
89 {
90     1, 3600
91 };
92 static const sal_Int32 mso_sptDefault3700[] =
93 {
94     1, 3700
95 };
96 static const sal_Int32 mso_sptDefault5400[] =
97 {
98     1, 5400
99 };
100 static const sal_Int32 mso_sptDefault7200[] =
101 {
102     1, 7200
103 };
104 static const sal_Int32 mso_sptDefault8100[] =
105 {
106     1, 8100
107 };
108 static const sal_Int32 mso_sptDefault9600[] =
109 {
110     1, 9600
111 };
112 static const sal_Int32 mso_sptDefault10800[] =
113 {
114     1, 10800
115 };
116 static const sal_Int32 mso_sptDefault12000[] =
117 {
118     1, 12000
119 };
120 static const sal_Int32 mso_sptDefault13500[] =
121 {
122     1, 13500
123 };
124 static const sal_Int32 mso_sptDefault16200[] =
125 {
126     1, 16200
127 };
128 static const sal_Int32 mso_sptDefault16200and5400[] =
129 {
130     2, 16200, 5400
131 };
132 
133 static const SvxMSDffVertPair mso_sptArcVert[] =
134 {
135     { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }, { 10800, 10800 },
136     { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }
137 };
138 static const sal_uInt16 mso_sptArcSegm[] =
139 {
140     0xa504, 0xab00, 0x0001, 0x6001, 0x8000,
141     0xa504, 0xaa00, 0x8000
142 };
143 static const SvxMSDffCalculationData mso_sptArcCalc[] =
144 {
145     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
146     { 0x2000, { 0x400, 10800, 0 } },
147     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
148     { 0x2000, { 0x402, 10800, 0 } },
149     { 0x4009, { 10800, DFF_Prop_adjust2Value, 0 } },
150     { 0x2000, { 0x404, 10800, 0 } },
151     { 0x400a, { 10800, DFF_Prop_adjust2Value, 0 } },
152     { 0x2000, { 0x406, 10800, 0 } }
153 };
154 static const sal_Int32 mso_sptArcDefault[] =
155 {
156     2, 270, 0
157 };
158 static const SvxMSDffVertPair mso_sptStandardGluePoints[] =
159 {
160     { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
161 };
162 static const SvxMSDffHandle mso_sptArcHandle[] =
163 {
164     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
165         10800, 0x100, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff },
166     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
167         10800, 0x101, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff }
168 };
169 static const mso_CustomShape msoArc =
170 {
171     (SvxMSDffVertPair*)mso_sptArcVert, sizeof( mso_sptArcVert ) / sizeof( SvxMSDffVertPair ),
172     (sal_uInt16*)mso_sptArcSegm, sizeof( mso_sptArcSegm ) >> 1,
173     (SvxMSDffCalculationData*)mso_sptArcCalc, sizeof( mso_sptArcCalc ) / sizeof( SvxMSDffCalculationData ),
174     (sal_Int32*)mso_sptArcDefault,
175     NULL, 0,
176     21600, 21600,
177     0x80000000, 0x80000000,
178     NULL, 0,
179     (SvxMSDffHandle*)mso_sptArcHandle, sizeof( mso_sptArcHandle ) / sizeof( SvxMSDffHandle )        // handles
180 };
181 
182 static const SvxMSDffVertPair mso_sptTextSimpleVert[] =
183 {
184     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
185 };
186 static const mso_CustomShape msoTextSimple =
187 {
188     (SvxMSDffVertPair*)mso_sptTextSimpleVert, sizeof( mso_sptTextSimpleVert ) / sizeof( SvxMSDffVertPair ),
189     NULL, 0,
190     NULL, 0,
191     NULL,
192     NULL, 0,
193     21600, 21600,
194     0x80000000, 0x80000000,
195     NULL, 0,
196     NULL, 0     // handles
197 };
198 
199 static const SvxMSDffVertPair mso_sptRectangleVert[] =
200 {
201     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
202 };
203 static const mso_CustomShape msoRectangle =
204 {
205     (SvxMSDffVertPair*)mso_sptRectangleVert, sizeof( mso_sptRectangleVert ) / sizeof( SvxMSDffVertPair ),
206     NULL, 0,
207     NULL, 0,
208     NULL,
209     NULL, 0,
210     21600, 21600,
211     0x80000000, 0x80000000,
212     NULL, 0,
213     NULL, 0     // handles
214 };
215 
216 static const SvxMSDffVertPair mso_sptRoundRectangleVert[] = // adj value 0 -> 10800
217 {
218     { 7 MSO_I, 0 }, { 0, 8 MSO_I }, { 0, 9 MSO_I }, { 7 MSO_I, 21600 },
219     { 10 MSO_I, 21600 }, { 21600, 9 MSO_I }, { 21600, 8 MSO_I }, { 10 MSO_I, 0 }
220 };
221 static const sal_uInt16 mso_sptRoundRectangleSegm[] =
222 {
223     0x4000, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x6000, 0x8000
224 };
225 static const SvxMSDffCalculationData mso_sptRoundRectangleCalc[] =
226 {
227     { 0x000e, { 0, 45, 0 } },
228     { 0x6009, { DFF_Prop_adjustValue, 0x400, 0 } },
229     { 0x2001, { 0x401, 3163, 7636 } },
230     { 0x6000, { DFF_Prop_geoLeft, 0x402, 0 } },
231     { 0x6000, { DFF_Prop_geoTop, 0x402, 0 } },
232     { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },
233     { 0xa000, { DFF_Prop_geoBottom, 0, 0x402 } },
234     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
235     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
236     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
237     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } }
238 };
239 static const SvxMSDffTextRectangles mso_sptRoundRectangleTextRect[] =
240 {
241     { { 3 MSO_I, 4 MSO_I }, { 5 MSO_I, 6 MSO_I } }
242 };
243 static const SvxMSDffHandle mso_sptRoundRectangleHandle[] =
244 {
245     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
246         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
247 };
248 static const mso_CustomShape msoRoundRectangle =
249 {
250     (SvxMSDffVertPair*)mso_sptRoundRectangleVert, sizeof( mso_sptRoundRectangleVert ) / sizeof( SvxMSDffVertPair ),
251     (sal_uInt16*)mso_sptRoundRectangleSegm, sizeof( mso_sptRoundRectangleSegm ) >> 1,
252     (SvxMSDffCalculationData*)mso_sptRoundRectangleCalc, sizeof( mso_sptRoundRectangleCalc ) / sizeof( SvxMSDffCalculationData ),
253     (sal_Int32*)mso_sptDefault3600,
254     (SvxMSDffTextRectangles*)mso_sptRoundRectangleTextRect, sizeof( mso_sptRoundRectangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
255     21600, 21600,
256     10800, 10800,
257     NULL, 0,
258     (SvxMSDffHandle*)mso_sptRoundRectangleHandle, sizeof( mso_sptRoundRectangleHandle ) / sizeof( SvxMSDffHandle )      // handles
259 };
260 
261 static const SvxMSDffVertPair mso_sptRightTriangleVert[] =
262 {
263     { 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
264 };
265 static const SvxMSDffTextRectangles mso_sptRightTriangleTextRect[] =
266 {
267     { { 1900, 12700 }, { 12700, 19700 } }
268 };
269 static const SvxMSDffVertPair mso_sptRightTriangleGluePoints[] =
270 {
271     { 10800, 0 }, { 5400, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 16200, 10800 }
272 };
273 static const mso_CustomShape msoRightTriangle =
274 {
275     (SvxMSDffVertPair*)mso_sptRightTriangleVert, sizeof( mso_sptRightTriangleVert ) / sizeof( SvxMSDffVertPair ),
276     NULL, 0,
277     NULL, 0,
278     NULL,
279     (SvxMSDffTextRectangles*)mso_sptRightTriangleTextRect, sizeof( mso_sptRightTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
280     21600, 21600,
281     0x80000000, 0x80000000,
282     (SvxMSDffVertPair*)mso_sptRightTriangleGluePoints, sizeof( mso_sptRightTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
283     NULL, 0     // handles
284 };
285 
286 static const SvxMSDffVertPair mso_sptEllipseVert[] =
287 {
288     { 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
289 };
290 static const sal_uInt16 mso_sptEllipseSegm[] =
291 {
292     0xa203, 0x6000, 0x8000
293 };
294 static const SvxMSDffTextRectangles mso_sptEllipseTextRect[] =
295 {
296     { { 3163, 3163 }, { 18437, 18437 } }
297 };
298 static const SvxMSDffVertPair mso_sptEllipseGluePoints[] =
299 {
300     { 10800, 0 }, { 3163, 3163 }, { 0, 10800 }, { 3163, 18437 }, { 10800, 21600 }, { 18437, 18437 }, { 21600, 10800 }, { 18437, 3163 }
301 };
302 static const mso_CustomShape msoEllipse =
303 {
304     (SvxMSDffVertPair*)mso_sptEllipseVert, sizeof( mso_sptEllipseVert ) / sizeof( SvxMSDffVertPair ),
305     (sal_uInt16*)mso_sptEllipseSegm, sizeof( mso_sptEllipseSegm ) >> 1,
306     NULL, 0,
307     NULL,
308     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
309     21600, 21600,
310     0x80000000, 0x80000000,
311     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
312     NULL, 0     // handles
313 };
314 
315 static const SvxMSDffVertPair mso_sptParallelogramVert[] =  // adjustment1 : 0 - 21600
316 {
317     { 0 MSO_I, 0 }, { 21600, 0 }, { 1 MSO_I, 21600 }, { 0, 21600 }
318 };
319 static const sal_uInt16 mso_sptParallelogramSegm[] =
320 {
321     0x4000, 0x0003, 0x6001, 0x8000
322 };
323 static const SvxMSDffCalculationData mso_sptParallelogramCalc[] =
324 {
325     { 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
326     { 0x8000, { 0, 21600, DFF_Prop_adjustValue } },
327     { 0x2001, { DFF_Prop_adjustValue, 10, 24 } },
328     { 0x2000, { 0x0402, 1750, 0 } },
329     { 0x8000, { 21600, 0, 0x0403 } },
330     { 0x2001, { 0x400, 1, 2 } },
331     { 0x4000, { 10800, 0x405, 0 } },
332     { 0x2000, { 0x400, 0, 10800 } },
333     { 0x6006, { 0x407, 0x40d, 0 } },
334     { 0x8000, { 10800, 0, 0x405 } },
335     { 0x6006, { 0x407, 0x40c, 21600 } },
336     { 0x8000, { 21600, 0, 0x405 } },
337     { 0x8001, { 21600, 10800, 0x400 } },
338     { 0x8000, { 21600, 0, 0x40c } }
339 };
340 static const SvxMSDffTextRectangles mso_sptParallelogramTextRect[] =
341 {
342     { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
343 };
344 static const SvxMSDffVertPair mso_sptParallelogramGluePoints[] =
345 {
346     { 6 MSO_I, 0 }, { 10800, 8 MSO_I }, { 11 MSO_I, 10800 }, { 9 MSO_I, 21600 }, { 10800, 10 MSO_I }, { 5 MSO_I, 10800 }
347 };
348 static const SvxMSDffHandle mso_sptParallelogramHandle[] =
349 {
350     {   MSDFF_HANDLE_FLAGS_RANGE,
351         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
352 };
353 static const mso_CustomShape msoParallelogram =
354 {
355     (SvxMSDffVertPair*)mso_sptParallelogramVert, sizeof( mso_sptParallelogramVert ) / sizeof( SvxMSDffVertPair ),
356     (sal_uInt16*)mso_sptParallelogramSegm, sizeof( mso_sptParallelogramSegm ) >> 1,
357     (SvxMSDffCalculationData*)mso_sptParallelogramCalc, sizeof( mso_sptParallelogramCalc ) / sizeof( SvxMSDffCalculationData ),
358     (sal_Int32*)mso_sptDefault5400,
359     (SvxMSDffTextRectangles*)mso_sptParallelogramTextRect, sizeof( mso_sptParallelogramTextRect ) / sizeof( SvxMSDffTextRectangles ),
360     21600, 21600,
361     0x80000000, 0x80000000,
362     (SvxMSDffVertPair*)mso_sptParallelogramGluePoints, sizeof( mso_sptParallelogramGluePoints ) / sizeof( SvxMSDffVertPair ),
363     (SvxMSDffHandle*)mso_sptParallelogramHandle, sizeof( mso_sptParallelogramHandle ) / sizeof( SvxMSDffHandle )        // handles
364 };
365 
366 static const SvxMSDffVertPair mso_sptDiamondVert[] =
367 {
368     { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }, { 10800, 0 }
369 };
370 static const SvxMSDffTextRectangles mso_sptDiamondTextRect[] =
371 {
372     { { 5400, 5400 }, { 16200, 16200 } }
373 };
374 static const mso_CustomShape msoDiamond =
375 {
376     (SvxMSDffVertPair*)mso_sptDiamondVert, sizeof( mso_sptDiamondVert ) / sizeof( SvxMSDffVertPair ),
377     NULL, 0,
378     NULL, 0,
379     NULL,
380     (SvxMSDffTextRectangles*)mso_sptDiamondTextRect, sizeof( mso_sptDiamondTextRect ) / sizeof( SvxMSDffTextRectangles ),
381     21600, 21600,
382     0x80000000, 0x80000000,
383     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
384     NULL, 0     // handles
385 };
386 
387 static const SvxMSDffVertPair mso_sptTrapezoidVert[] =      // adjustment1 : 0 - 10800
388 {
389     { 0, 0 }, { 21600, 0 }, {0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
390 };
391 static const sal_uInt16 mso_sptTrapezoidSegm[] =
392 {
393     0x4000, 0x0003, 0x6001, 0x8000
394 };
395 static const SvxMSDffCalculationData mso_sptTrapezoidCalc[] =
396 {
397     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
398     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
399     { 0x2001, { DFF_Prop_adjustValue, 10, 18 } },
400     { 0x2000, { 0x0402, 1750, 0 } },
401     { 0x8000, { 21600, 0, 0x403 } },
402     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
403     { 0x8000, { 21600, 0, 0x405 } }
404 };
405 static const SvxMSDffTextRectangles mso_sptTrapezoidTextRect[] =
406 {
407     { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
408 };
409 static const SvxMSDffVertPair mso_sptTrapezoidGluePoints[] =
410 {
411     { 6 MSO_I, 10800 }, { 10800, 21600 }, { 5 MSO_I, 10800 }, { 10800, 0 }
412 };
413 static const SvxMSDffHandle mso_sptTrapezoidHandle[] =
414 {
415     {   MSDFF_HANDLE_FLAGS_RANGE,
416         0x100, 1, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
417 };
418 static const mso_CustomShape msoTrapezoid =
419 {
420     (SvxMSDffVertPair*)mso_sptTrapezoidVert, sizeof( mso_sptTrapezoidVert ) / sizeof( SvxMSDffVertPair ),
421     (sal_uInt16*)mso_sptTrapezoidSegm, sizeof( mso_sptTrapezoidSegm ) >> 1,
422     (SvxMSDffCalculationData*)mso_sptTrapezoidCalc, sizeof( mso_sptTrapezoidCalc ) / sizeof( SvxMSDffCalculationData ),
423     (sal_Int32*)mso_sptDefault5400,
424     (SvxMSDffTextRectangles*)mso_sptTrapezoidTextRect, sizeof( mso_sptTrapezoidTextRect ) / sizeof( SvxMSDffTextRectangles ),
425     21600, 21600,
426     0x80000000, 0x80000000,
427     (SvxMSDffVertPair*)mso_sptTrapezoidGluePoints, sizeof( mso_sptTrapezoidGluePoints ) / sizeof( SvxMSDffVertPair ),
428     (SvxMSDffHandle*)mso_sptTrapezoidHandle, sizeof( mso_sptTrapezoidHandle ) / sizeof( SvxMSDffHandle )        // handles
429 };
430 
431 static const SvxMSDffVertPair mso_sptOctagonVert[] =        // adjustment1 : 0 - 10800
432 {
433     { 0 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 3 MSO_I },
434     { 2 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }, { 0, 1 MSO_I }
435 };
436 static const sal_uInt16 mso_sptOctagonSegm[] =
437 {
438     0x4000, 0x0007, 0x6001, 0x8000
439 };
440 static const SvxMSDffCalculationData mso_sptOctagonCalc[] =
441 {
442     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
443     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
444     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
445     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
446     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
447     { 0x6000, { DFF_Prop_geoLeft, 0x404, 0 } },
448     { 0x6000, { DFF_Prop_geoTop, 0x404, 0 } },
449     { 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
450     { 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
451 };
452 static const sal_Int32 mso_sptOctagonDefault[] =
453 {
454     1, 5000
455 };
456 static const SvxMSDffTextRectangles mso_sptOctagonTextRect[] =
457 {
458     { { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 8 MSO_I } }
459 };
460 static const SvxMSDffHandle mso_sptOctagonHandle[] =
461 {
462     {   MSDFF_HANDLE_FLAGS_RANGE,
463         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
464 };
465 static const mso_CustomShape msoOctagon =
466 {
467     (SvxMSDffVertPair*)mso_sptOctagonVert, sizeof( mso_sptOctagonVert ) / sizeof( SvxMSDffVertPair ),
468     (sal_uInt16*)mso_sptOctagonSegm, sizeof( mso_sptOctagonSegm ) >> 1,
469     (SvxMSDffCalculationData*)mso_sptOctagonCalc, sizeof( mso_sptOctagonCalc ) / sizeof( SvxMSDffCalculationData ),
470     (sal_Int32*)mso_sptOctagonDefault,
471     (SvxMSDffTextRectangles*)mso_sptOctagonTextRect, sizeof( mso_sptOctagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
472     21600, 21600,
473     10800, 10800,
474     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
475     (SvxMSDffHandle*)mso_sptOctagonHandle, sizeof( mso_sptOctagonHandle ) / sizeof( SvxMSDffHandle )        // handles
476 };
477 
478 static const SvxMSDffVertPair mso_sptIsocelesTriangleVert[] =   // adjustment1 : 0 - 21600
479 {
480     { 0 MSO_I, 0 }, { 21600, 21600 }, { 0, 21600 }
481 };
482 static const sal_uInt16 mso_sptIsocelesTriangleSegm[] =
483 {
484     0x4000, 0x0002, 0x6001, 0x8000
485 };
486 static const SvxMSDffCalculationData mso_sptIsocelesTriangleCalc[] =
487 {
488     { 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
489     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
490     { 0x2000, { 0x401, 10800, 0 } },
491     { 0x2001, { DFF_Prop_adjustValue, 2, 3 } },
492     { 0x2000, { 0x403, 7200, 0 } },
493     { 0x8000, { 21600, 0, 0x400 } },
494     { 0x2001, { 0x405, 1, 2 } },
495     { 0x8000, { 21600, 0, 0x406 } }
496 };
497 static const SvxMSDffTextRectangles mso_sptIsocelesTriangleTextRect[] =
498 {
499     { { 1 MSO_I, 10800 }, { 2 MSO_I, 18000 } },
500     { { 3 MSO_I, 7200 }, { 4 MSO_I, 21600   } }
501 };
502 static const SvxMSDffVertPair mso_sptIsocelesTriangleGluePoints[] =
503 {
504     { 10800, 0 }, { 1 MSO_I, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 7 MSO_I, 10800 }
505 };
506 static const SvxMSDffHandle mso_sptIsocelesTriangleHandle[] =
507 {
508     {   MSDFF_HANDLE_FLAGS_RANGE,
509         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
510 };
511 static const mso_CustomShape msoIsocelesTriangle =
512 {
513     (SvxMSDffVertPair*)mso_sptIsocelesTriangleVert, sizeof( mso_sptIsocelesTriangleVert ) / sizeof( SvxMSDffVertPair ),
514     (sal_uInt16*)mso_sptIsocelesTriangleSegm, sizeof( mso_sptIsocelesTriangleSegm ) >> 1,
515     (SvxMSDffCalculationData*)mso_sptIsocelesTriangleCalc, sizeof( mso_sptIsocelesTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
516     (sal_Int32*)mso_sptDefault10800,
517     (SvxMSDffTextRectangles*)mso_sptIsocelesTriangleTextRect, sizeof( mso_sptIsocelesTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
518     21600, 21600,
519     0x80000000, 0x80000000,
520     (SvxMSDffVertPair*)mso_sptIsocelesTriangleGluePoints, sizeof( mso_sptIsocelesTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
521     (SvxMSDffHandle*)mso_sptIsocelesTriangleHandle, sizeof( mso_sptIsocelesTriangleHandle ) / sizeof( SvxMSDffHandle )      // handles
522 };
523 
524 static const SvxMSDffVertPair mso_sptHexagonVert[] =                // adjustment1 : 0 - 10800
525 {
526     { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 10800 }, { 1 MSO_I, 21600 },
527     { 0 MSO_I, 21600 }, { 0, 10800 }
528 };
529 static const sal_uInt16 mso_sptHexagonSegm[] =
530 {
531     0x4000, 0x0005, 0x6001, 0x8000
532 };
533 static const SvxMSDffCalculationData mso_sptHexagonCalc[] =
534 {
535     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
536     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
537     { 0x2001, { DFF_Prop_adjustValue, 100, 234 } },
538     { 0x2000, { 0x402, 1700, 0 } },
539     { 0x8000, { 21600, 0, 0x403 } }
540 };
541 static const SvxMSDffTextRectangles mso_sptHexagonTextRect[] =
542 {
543     { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
544 };
545 static const SvxMSDffHandle mso_sptHexagonHandle[] =
546 {
547     {   MSDFF_HANDLE_FLAGS_RANGE,
548         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
549 };
550 static const mso_CustomShape msoHexagon =
551 {
552     (SvxMSDffVertPair*)mso_sptHexagonVert, sizeof( mso_sptHexagonVert ) / sizeof( SvxMSDffVertPair ),
553     (sal_uInt16*)mso_sptHexagonSegm, sizeof( mso_sptHexagonSegm ) >> 1,
554     (SvxMSDffCalculationData*)mso_sptHexagonCalc, sizeof( mso_sptHexagonCalc ) / sizeof( SvxMSDffCalculationData ),
555     (sal_Int32*)mso_sptDefault5400,
556     (SvxMSDffTextRectangles*)mso_sptHexagonTextRect, sizeof( mso_sptHexagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
557     21600, 21600,
558     0x80000000, 0x80000000,
559     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
560     (SvxMSDffHandle*)mso_sptHexagonHandle, sizeof( mso_sptHexagonHandle ) / sizeof( SvxMSDffHandle )        // handles
561 };
562 
563 static const SvxMSDffVertPair mso_sptPentagonVert[] =
564 {
565     { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 17370, 21600 },
566     { 21600, 8260 }, { 10800, 0 }
567 };
568 static const SvxMSDffTextRectangles mso_sptPentagonTextRect[] =
569 {
570     { { 4230, 5080 }, { 17370, 21600 } }
571 };
572 static const SvxMSDffVertPair mso_sptPentagonGluePoints[] =
573 {
574     { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 10800, 21600 },
575     { 17370, 21600 }, { 21600, 8260 }
576 };
577 static const mso_CustomShape msoPentagon =
578 {
579     (SvxMSDffVertPair*)mso_sptPentagonVert, sizeof( mso_sptPentagonVert ) / sizeof( SvxMSDffVertPair ),
580     NULL, 0,
581     NULL, 0,
582     NULL,
583     (SvxMSDffTextRectangles*)mso_sptPentagonTextRect, sizeof( mso_sptPentagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
584     21600, 21600,
585     0x80000000, 0x80000000,
586     (SvxMSDffVertPair*)mso_sptPentagonGluePoints, sizeof( mso_sptPentagonGluePoints ) / sizeof( SvxMSDffVertPair ),
587     NULL, 0     // handles
588 };
589 
590 static const SvxMSDffVertPair mso_sptPlusVert[] =               // adjustment1 : 0 - 10800
591 {
592     { 1 MSO_I, 0 }, { 2 MSO_I, 0 }, { 2 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I },
593     { 21600, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 21600 }, { 1 MSO_I, 21600 },
594     { 1 MSO_I, 3 MSO_I }, { 0, 3 MSO_I }, { 0, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 0 }
595 };
596 static const SvxMSDffCalculationData mso_sptPlusCalc[] =
597 {
598     { 0x2001, { DFF_Prop_adjustValue, 10799, 10800 } },
599     { 0x2000, { 0x400, 0, 0 } },
600     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
601     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
602 };
603 static const SvxMSDffTextRectangles mso_sptPlusTextRect[] =
604 {
605     { { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I } }
606 };
607 static const SvxMSDffHandle mso_sptPlusHandle[] =
608 {
609     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
610         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
611 };
612 static const mso_CustomShape msoPlus =
613 {
614     (SvxMSDffVertPair*)mso_sptPlusVert, sizeof( mso_sptPlusVert ) / sizeof( SvxMSDffVertPair ),
615     NULL, 0,
616     (SvxMSDffCalculationData*)mso_sptPlusCalc, sizeof( mso_sptPlusCalc ) / sizeof( SvxMSDffCalculationData ),
617     (sal_Int32*)mso_sptDefault5400,
618     (SvxMSDffTextRectangles*)mso_sptPlusTextRect, sizeof( mso_sptPlusTextRect ) / sizeof( SvxMSDffTextRectangles ),
619     21600, 21600,
620     10800, 10800,
621     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
622     (SvxMSDffHandle*)mso_sptPlusHandle, sizeof( mso_sptPlusHandle ) / sizeof( SvxMSDffHandle )      // handles
623 };
624 
625 static const SvxMSDffVertPair mso_sptCanVert[] =        // adjustment1 : 0 - 10800
626 {
627     { 44, 0 },
628     { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },          // ccp
629     { 0, 3 MSO_I },                                     // p
630     { 0, 4 MSO_I }, { 20, 21600 }, { 44, 21600 },       // ccp
631     { 68, 21600 }, { 88, 4 MSO_I }, { 88, 3 MSO_I },    // ccp
632     { 88, 0 MSO_I },                                    // p
633     { 88, 2 MSO_I }, { 68, 0 }, { 44, 0 },              // ccp
634     { 44, 0 },                                          // p
635     { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },          // ccp
636     { 0, 5 MSO_I }, { 20, 6 MSO_I }, { 44, 6 MSO_I },   // ccp
637     { 68, 6 MSO_I },{ 88, 5 MSO_I }, { 88, 0 MSO_I },   // ccp
638     { 88, 2 MSO_I },{ 68, 0 }, { 44, 0 }                // ccp
639 };
640 static const sal_uInt16 mso_sptCanSegm[] =
641 {
642     0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000,
643     0x4000, 0x2004, 0x6001, 0x8000
644 };
645 static const SvxMSDffCalculationData mso_sptCanCalc[] =
646 {
647     { 0x2001, { DFF_Prop_adjustValue, 2, 4 } },     // 1/4
648     { 0x2001, { 0x0400, 6, 11 } },
649     { 0xa000, { 0x0400, 0, 0x0401 } },
650     { 0x8000, { 21600, 0, 0x0400 } },
651     { 0x6000, { 0x0403, 0x0401, 0 } },
652     { 0x6000, { 0x0400, 0x0401, 0 } },
653     { 0x2001, { DFF_Prop_adjustValue, 2, 2 } },
654     { 0x0000, { 44, 0, 0 } }
655 };
656 static const SvxMSDffTextRectangles mso_sptCanTextRect[] =
657 {
658     { { 0, 6 MSO_I }, { 88, 3 MSO_I } }
659 };
660 static const SvxMSDffVertPair mso_sptCanGluePoints[] =
661 {
662     { 44, 6 MSO_I }, { 44, 0 }, { 0, 10800 }, { 44, 21600 }, { 88, 10800 }
663 };
664 static const SvxMSDffHandle mso_sptCanHandle[] =
665 {
666     {   MSDFF_HANDLE_FLAGS_RANGE,
667         7 + 3, 0x100, 44, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
668 };
669 static const mso_CustomShape msoCan =
670 {
671     (SvxMSDffVertPair*)mso_sptCanVert, sizeof( mso_sptCanVert ) / sizeof( SvxMSDffVertPair ),
672     (sal_uInt16*)mso_sptCanSegm, sizeof( mso_sptCanSegm ) >> 1,
673     (SvxMSDffCalculationData*)mso_sptCanCalc, sizeof( mso_sptCanCalc ) / sizeof( SvxMSDffCalculationData ),
674     (sal_Int32*)mso_sptDefault5400,
675     (SvxMSDffTextRectangles*)mso_sptCanTextRect, sizeof( mso_sptCanTextRect ) / sizeof( SvxMSDffTextRectangles ),
676     88, 21600,
677     0x80000000, 0x80000000,
678     (SvxMSDffVertPair*)mso_sptCanGluePoints, sizeof( mso_sptCanGluePoints ) / sizeof( SvxMSDffVertPair ),
679     (SvxMSDffHandle*)mso_sptCanHandle, sizeof( mso_sptCanHandle ) / sizeof( SvxMSDffHandle )        // handles
680 };
681 
682 static const SvxMSDffVertPair mso_sptArrowVert[] =  // adjustment1: x 0 - 21600
683 {                                                   // adjustment2: y 0 - 10800
684     { 0, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
685     { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }
686 };
687 static const sal_uInt16 mso_sptArrowSegm[] =
688 {
689     0x4000, 0x0006, 0x6001, 0x8000
690 };
691 static const SvxMSDffCalculationData mso_sptArrowCalc[] =
692 {
693     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
694     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
695     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
696     { 0x8000, { 21600, 0, 0x401 } },
697     { 0x6001, { 0x403, 0x400, 10800 } },
698     { 0x6000, { 0x401, 0x404, 0 } },
699     { 0x6001, { 0x401, 0x400, 10800 } },
700     { 0xa000, { 0x401, 0, 0x406 } }
701 };
702 static const SvxMSDffTextRectangles mso_sptArrowTextRect[] =
703 {
704     { { 0, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
705 };
706 static const SvxMSDffHandle mso_sptArrowHandle[] =
707 {
708     {   MSDFF_HANDLE_FLAGS_RANGE,
709         0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
710 };
711 static const mso_CustomShape msoArrow =
712 {
713     (SvxMSDffVertPair*)mso_sptArrowVert, sizeof( mso_sptArrowVert ) / sizeof( SvxMSDffVertPair ),
714     (sal_uInt16*)mso_sptArrowSegm, sizeof( mso_sptArrowSegm ) >> 1,
715     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
716     (sal_Int32*)mso_sptDefault16200and5400,
717     (SvxMSDffTextRectangles*)mso_sptArrowTextRect, sizeof( mso_sptArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
718     21600, 21600,
719     0x80000000, 0x80000000,
720     NULL, 0,
721     (SvxMSDffHandle*)mso_sptArrowHandle, sizeof( mso_sptArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
722 };
723 
724 static const SvxMSDffVertPair mso_sptLeftArrowVert[] =  // adjustment1: x 0 - 21600
725 {                                                       // adjustment2: y 0 - 10800
726     { 21600, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 0, 10800 },
727     { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }
728 };
729 static const sal_uInt16 mso_sptLeftArrowSegm[] =
730 {
731     0x4000, 0x0006, 0x6001, 0x8000
732 };
733 static const sal_Int32 mso_sptLeftArrowDefault[] =
734 {
735     2, 5400, 5400
736 };
737 static const SvxMSDffTextRectangles mso_sptLeftArrowTextRect[] =
738 {
739     { { 7 MSO_I, 0 MSO_I }, { 21600, 2 MSO_I } }
740 };
741 static const SvxMSDffHandle mso_sptLeftArrowHandle[] =
742 {
743     {   MSDFF_HANDLE_FLAGS_RANGE,
744         0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
745 };
746 static const mso_CustomShape msoLeftArrow =
747 {
748     (SvxMSDffVertPair*)mso_sptLeftArrowVert, sizeof( mso_sptLeftArrowVert ) / sizeof( SvxMSDffVertPair ),
749     (sal_uInt16*)mso_sptLeftArrowSegm, sizeof( mso_sptLeftArrowSegm ) >> 1,
750     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
751     (sal_Int32*)mso_sptLeftArrowDefault,
752     (SvxMSDffTextRectangles*)mso_sptLeftArrowTextRect, sizeof( mso_sptLeftArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
753     21600, 21600,
754     0x80000000, 0x80000000,
755     NULL, 0,
756     (SvxMSDffHandle*)mso_sptLeftArrowHandle, sizeof( mso_sptLeftArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
757 };
758 
759 static const SvxMSDffVertPair mso_sptDownArrowVert[] =  // adjustment1: x 0 - 21600
760 {                                                       // adjustment2: y 0 - 10800
761     { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 21600 },
762     { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 }
763 };
764 static const sal_uInt16 mso_sptDownArrowSegm[] =
765 {
766     0x4000, 0x0006, 0x6001, 0x8000
767 };
768 static const SvxMSDffTextRectangles mso_sptDownArrowTextRect[] =
769 {
770     { { 0 MSO_I, 0 }, { 2 MSO_I, 5 MSO_I } }
771 };
772 static const SvxMSDffHandle mso_sptDownArrowHandle[] =
773 {
774     {   MSDFF_HANDLE_FLAGS_RANGE,
775         0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
776 };
777 static const mso_CustomShape msoDownArrow =
778 {
779     (SvxMSDffVertPair*)mso_sptDownArrowVert, sizeof( mso_sptDownArrowVert ) / sizeof( SvxMSDffVertPair ),
780     (sal_uInt16*)mso_sptDownArrowSegm, sizeof( mso_sptDownArrowSegm ) >> 1,
781     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
782     (sal_Int32*)mso_sptDefault16200and5400,
783     (SvxMSDffTextRectangles*)mso_sptDownArrowTextRect, sizeof( mso_sptDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
784     21600, 21600,
785     0x80000000, 0x80000000,
786     NULL, 0,
787     (SvxMSDffHandle*)mso_sptDownArrowHandle, sizeof( mso_sptDownArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
788 };
789 
790 static const SvxMSDffVertPair mso_sptUpArrowVert[] =    // adjustment1: x 0 - 21600
791 {                                                       // adjustment2: y 0 - 10800
792     { 0 MSO_I, 21600 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 0 },
793     { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
794 };
795 static const sal_uInt16 mso_sptUpArrowSegm[] =
796 {
797     0x4000, 0x0006, 0x6001, 0x8000
798 };
799 static const sal_Int32 mso_sptUpArrowDefault[] =
800 {
801     2, 5400, 5400
802 };
803 static const SvxMSDffTextRectangles mso_sptUpArrowTextRect[] =
804 {
805     { { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 21600 } }
806 };
807 static const SvxMSDffHandle mso_sptUpArrowHandle[] =
808 {
809     {   MSDFF_HANDLE_FLAGS_RANGE,
810         0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
811 };
812 static const mso_CustomShape msoUpArrow =
813 {
814     (SvxMSDffVertPair*)mso_sptUpArrowVert, sizeof( mso_sptUpArrowVert ) / sizeof( SvxMSDffVertPair ),
815     (sal_uInt16*)mso_sptUpArrowSegm, sizeof( mso_sptUpArrowSegm ) >> 1,
816     (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
817     (sal_Int32*)mso_sptUpArrowDefault,
818     (SvxMSDffTextRectangles*)mso_sptUpArrowTextRect, sizeof( mso_sptUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
819     21600, 21600,
820     0x80000000, 0x80000000,
821     NULL, 0,
822     (SvxMSDffHandle*)mso_sptUpArrowHandle, sizeof( mso_sptUpArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
823 };
824 
825 static const SvxMSDffVertPair mso_sptLeftRightArrowVert[] = // adjustment1: x 0 - 10800
826 {                                                           // adjustment2: y 0 - 10800
827     { 0, 10800 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
828     { 2 MSO_I, 0 }, { 21600, 10800 }, { 2 MSO_I, 21600 }, { 2 MSO_I, 3 MSO_I },
829     { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 21600 }
830 };
831 static const sal_uInt16 mso_sptLeftRightArrowSegm[] =
832 {
833     0x4000, 0x0009, 0x6001, 0x8000
834 };
835 static const SvxMSDffCalculationData mso_sptDoubleArrowCalc[] =
836 {
837     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
838     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
839     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
840     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
841     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
842     { 0x6001, { DFF_Prop_adjustValue, 0x404, 10800 } },
843     { 0x8000, { 21600, 0, 0x405 } },
844     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
845     { 0x6001, { DFF_Prop_adjust2Value, 0x407, 10800 } },
846     { 0x8000, { 21600, 0, 0x408 } }
847 };
848 static const sal_Int32 mso_sptLeftRightArrowDefault[] =
849 {
850     2, 4300, 5400
851 };
852 static const SvxMSDffTextRectangles mso_sptLeftRightArrowTextRect[] =
853 {
854     { { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 3 MSO_I } }
855 };
856 static const SvxMSDffHandle mso_sptLeftRightArrowHandle[] =
857 {
858     {   MSDFF_HANDLE_FLAGS_RANGE,
859         0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
860 };
861 static const mso_CustomShape msoLeftRightArrow =
862 {
863     (SvxMSDffVertPair*)mso_sptLeftRightArrowVert, sizeof( mso_sptLeftRightArrowVert ) / sizeof( SvxMSDffVertPair ),
864     (sal_uInt16*)mso_sptLeftRightArrowSegm, sizeof( mso_sptLeftRightArrowSegm ) >> 1,
865     (SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
866     (sal_Int32*)mso_sptLeftRightArrowDefault,
867     (SvxMSDffTextRectangles*)mso_sptLeftRightArrowTextRect, sizeof( mso_sptLeftRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
868     21600, 21600,
869     0x80000000, 0x80000000,
870     NULL, 0,
871     (SvxMSDffHandle*)mso_sptLeftRightArrowHandle, sizeof( mso_sptLeftRightArrowHandle ) / sizeof( SvxMSDffHandle )      // handles
872 };
873 
874 static const SvxMSDffVertPair mso_sptUpDownArrowVert[] =    // adjustment1: x 0 - 10800
875 {                                                           // adjustment2: y 0 - 10800
876     { 0, 1 MSO_I }, { 10800, 0 }, { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
877     { 2 MSO_I, 3 MSO_I }, { 21600, 3 MSO_I }, { 10800, 21600 }, { 0, 3 MSO_I },
878     { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
879 };
880 static const sal_uInt16 mso_sptUpDownArrowSegm[] =
881 {
882     0x4000, 0x0009, 0x6001, 0x8000
883 };
884 static const sal_Int32 mso_sptUpDownArrowDefault[] =
885 {
886     2, 5400, 4300
887 };
888 static const SvxMSDffTextRectangles mso_sptUpDownArrowTextRect[] =
889 {
890     { { 0 MSO_I, 8 MSO_I }, { 2 MSO_I, 9 MSO_I } }
891 };
892 static const SvxMSDffHandle mso_sptUpDownArrowHandle[] =
893 {
894     {   MSDFF_HANDLE_FLAGS_RANGE,
895         0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
896 };
897 static const mso_CustomShape msoUpDownArrow =
898 {
899     (SvxMSDffVertPair*)mso_sptUpDownArrowVert, sizeof( mso_sptUpDownArrowVert ) / sizeof( SvxMSDffVertPair ),
900     (sal_uInt16*)mso_sptUpDownArrowSegm, sizeof( mso_sptUpDownArrowSegm ) >> 1,
901     (SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
902     (sal_Int32*)mso_sptUpDownArrowDefault,
903     (SvxMSDffTextRectangles*)mso_sptUpDownArrowTextRect, sizeof( mso_sptUpDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
904     21600, 21600,
905     0x80000000, 0x80000000,
906     NULL, 0,
907     (SvxMSDffHandle*)mso_sptUpDownArrowHandle, sizeof( mso_sptUpDownArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
908 };
909 
910 static const SvxMSDffVertPair mso_sptQuadArrowVert[] =  // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
911 {                                                       // adjustment3: y 0 - 10800
912     { 0, 10800 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 2 MSO_I, 2 MSO_I },
913     { 2 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 10800, 0 }, { 3 MSO_I, 0 MSO_I },
914     { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 1 MSO_I },
915     { 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, { 5 MSO_I, 4 MSO_I }, { 4 MSO_I, 4 MSO_I },
916     { 4 MSO_I, 5 MSO_I }, { 3 MSO_I, 5 MSO_I }, { 10800, 21600 }, { 1 MSO_I, 5 MSO_I },
917     { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 3 MSO_I }
918 };
919 static const sal_uInt16 mso_sptQuadArrowSegm[] =
920 {
921     0x4000, 0x0017, 0x6001, 0x8000
922 };
923 static const SvxMSDffCalculationData mso_sptQuadArrowCalc[] =
924 {
925     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
926     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
927     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
928     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
929     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
930     { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } }
931 };
932 static const sal_Int32 mso_sptQuadArrowDefault[] =
933 {
934     3, 6500, 8600, 4300
935 };
936 static const SvxMSDffTextRectangles mso_sptQuadArrowTextRect[] =    // todo
937 {
938     { { 0, 0 }, { 21600, 21600 } }
939 };
940 static const SvxMSDffHandle mso_sptQuadArrowHandle[] =
941 {
942     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
943         0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
944     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
945         0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
946 };
947 static const mso_CustomShape msoQuadArrow =
948 {
949     (SvxMSDffVertPair*)mso_sptQuadArrowVert, sizeof( mso_sptQuadArrowVert ) / sizeof( SvxMSDffVertPair ),
950     (sal_uInt16*)mso_sptQuadArrowSegm, sizeof( mso_sptQuadArrowSegm ) >> 1,
951     (SvxMSDffCalculationData*)mso_sptQuadArrowCalc, sizeof( mso_sptQuadArrowCalc ) / sizeof( SvxMSDffCalculationData ),
952     (sal_Int32*)mso_sptQuadArrowDefault,
953     (SvxMSDffTextRectangles*)mso_sptQuadArrowTextRect, sizeof( mso_sptQuadArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
954     21600, 21600,
955     0x80000000, 0x80000000,
956     NULL, 0,
957     (SvxMSDffHandle*)mso_sptQuadArrowHandle, sizeof( mso_sptQuadArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
958 };
959 
960 static const SvxMSDffVertPair mso_sptLeftRightUpArrowVert[] =   // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
961 {                                                               // adjustment3: y 0 - 21600
962     { 10800, 0 }, { 3 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 4 MSO_I, 1 MSO_I },
963     { 5 MSO_I, 1 MSO_I }, { 5 MSO_I, 0 MSO_I }, { 21600, 10800 }, { 5 MSO_I, 3 MSO_I },
964     { 5 MSO_I, 4 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0, 10800 },
965     { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 2 MSO_I },
966     { 0 MSO_I, 2 MSO_I }
967 };
968 static const sal_uInt16 mso_sptLeftRightUpArrowSegm[] =
969 {
970     0x4000, 0x0010, 0x6001, 0x8000
971 };
972 static const SvxMSDffCalculationData mso_sptLeftRightUpArrowCalc[] =
973 {
974     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },             // 0
975     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },            // 1
976     { 0x6001, { 0x0403, DFF_Prop_adjust3Value, 21600 } },   // 2
977     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },         // 3
978     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },        // 4
979     { 0x8000, { 21600, 0, 0x0402 } }                        // 5
980 };
981 static const sal_Int32 mso_sptLeftRightUpArrowDefault[] =
982 {
983     3, 6500, 8600, 6200
984 };
985 static const SvxMSDffTextRectangles mso_sptLeftRightUpArrowTextRect[] =     // todo
986 {
987     { { 0, 0 }, { 21600, 21600 } }
988 };
989 static const SvxMSDffHandle mso_sptLeftRightUpArrowHandle[] =
990 {
991     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
992         0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
993     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
994         0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
995 };
996 static const mso_CustomShape msoLeftRightUpArrow =
997 {
998     (SvxMSDffVertPair*)mso_sptLeftRightUpArrowVert, sizeof( mso_sptLeftRightUpArrowVert ) / sizeof( SvxMSDffVertPair ),
999     (sal_uInt16*)mso_sptLeftRightUpArrowSegm, sizeof( mso_sptLeftRightUpArrowSegm ) >> 1,
1000     (SvxMSDffCalculationData*)mso_sptLeftRightUpArrowCalc, sizeof( mso_sptLeftRightUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1001     (sal_Int32*)mso_sptLeftRightUpArrowDefault,
1002     (SvxMSDffTextRectangles*)mso_sptLeftRightUpArrowTextRect, sizeof( mso_sptLeftRightUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1003     21600, 21600,
1004     0x80000000, 0x80000000,
1005     NULL, 0,
1006     (SvxMSDffHandle*)mso_sptLeftRightUpArrowHandle, sizeof( mso_sptLeftRightUpArrowHandle ) / sizeof( SvxMSDffHandle )      // handles
1007 };
1008 
1009 static const SvxMSDffVertPair mso_sptBentArrowVert[] =  // adjustment1 : x 12427 - 21600
1010 {                                                       // adjustment2 : y 0 - 6079
1011     { 0, 21600 }, { 0, 12160 }, { 12427, 1 MSO_I }, { 0 MSO_I, 1 MSO_I },
1012     { 0 MSO_I, 0 }, { 21600, 6079 }, { 0 MSO_I, 12158 }, { 0 MSO_I, 2 MSO_I },
1013     { 12427, 2 MSO_I }, { 4 MSO_I, 12160 }, { 4 MSO_I, 21600 }
1014 };
1015 static const sal_uInt16 mso_sptBentArrowSegm[] =
1016 {
1017     0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000
1018 };
1019 static const SvxMSDffCalculationData mso_sptBentArrowCalc[] =
1020 {
1021     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1022     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1023     { 0x8000, { 12158, 0, DFF_Prop_adjust2Value } },
1024     { 0x8000, { 6079, 0, DFF_Prop_adjust2Value } },
1025     { 0x2001, { 0x0403, 2, 1 } }
1026 };
1027 static const sal_Int32 mso_sptBentArrowDefault[] =
1028 {
1029     2, 15100, 2900
1030 };
1031 static const SvxMSDffTextRectangles mso_sptBentArrowTextRect[] =    // todo
1032 {
1033     { { 0, 0 }, { 21600, 21600 } }
1034 };
1035 static const SvxMSDffHandle mso_sptBentArrowHandle[] =
1036 {
1037     {   MSDFF_HANDLE_FLAGS_RANGE,
1038         0x100, 0x101, 10800, 10800, 12427, 21600, 0, 6079 }
1039 };
1040 static const mso_CustomShape msoBentArrow =
1041 {
1042     (SvxMSDffVertPair*)mso_sptBentArrowVert, sizeof( mso_sptBentArrowVert ) / sizeof( SvxMSDffVertPair ),
1043     (sal_uInt16*)mso_sptBentArrowSegm, sizeof( mso_sptBentArrowSegm ) >> 1,
1044     (SvxMSDffCalculationData*)mso_sptBentArrowCalc, sizeof( mso_sptBentArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1045     (sal_Int32*)mso_sptBentArrowDefault,
1046     (SvxMSDffTextRectangles*)mso_sptBentArrowTextRect, sizeof( mso_sptBentArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1047     21600, 21600,
1048     0x80000000, 0x80000000,
1049     NULL, 0,
1050     (SvxMSDffHandle*)mso_sptBentArrowHandle, sizeof( mso_sptBentArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
1051 };
1052 
1053 static const SvxMSDffVertPair mso_sptUturnArrowVert[] =
1054 {
1055     { 0, 21600 }, { 0, 8550 },                                          // pp
1056     { 0, 3540 }, { 4370, 0 }, { 9270, 0 },                              // ccp
1057     { 13890, 0 }, { 18570, 3230 }, { 18600, 8300 },                     // ccp
1058     { 21600, 8300 }, { 15680, 14260 }, { 9700, 8300 }, { 12500, 8300 }, // pppp
1059     { 12320, 6380 }, { 10870, 5850 }, { 9320, 5850 },                   // ccp
1060     { 7770, 5850 }, { 6040, 6410 }, { 6110, 8520 },                     // ccp
1061     { 6110, 21600 }
1062 };
1063 static const sal_uInt16 mso_sptUturnArrowSegm[] =
1064 {
1065     0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000
1066 };
1067 static const SvxMSDffTextRectangles mso_sptUturnArrowTextRect[] =
1068 {
1069     { { 0, 8280 }, { 6110, 21600 } }
1070 };
1071 static const mso_CustomShape msoUturnArrow =
1072 {
1073     (SvxMSDffVertPair*)mso_sptUturnArrowVert, sizeof( mso_sptUturnArrowVert ) / sizeof( SvxMSDffVertPair ),
1074     (sal_uInt16*)mso_sptUturnArrowSegm, sizeof( mso_sptUturnArrowSegm ) >> 1,
1075     NULL, 0,
1076     NULL,
1077     (SvxMSDffTextRectangles*)mso_sptUturnArrowTextRect, sizeof( mso_sptUturnArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1078     21600, 21600,
1079     0x80000000, 0x80000000,
1080     NULL, 0,
1081     NULL, 0     // handles
1082 };
1083 
1084 static const SvxMSDffVertPair mso_sptLeftUpArrowVert[] =    // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1085 {                                                           // adjustment3 : y 0 - 21600
1086     { 0, 5 MSO_I }, { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 7 MSO_I, 7 MSO_I },
1087     { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 }, { 21600, 2 MSO_I },
1088     { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
1089 };
1090 static const sal_uInt16 mso_sptLeftUpArrowSegm[] =
1091 {
1092     0x4000, 0x000b, 0x6001, 0x8000
1093 };
1094 static const SvxMSDffCalculationData mso_sptLeftUpArrowCalc[] =
1095 {
1096     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0
1097     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },        // 1
1098     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },        // 2
1099     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3
1100     { 0x2001, { 0x0403, 1, 2 } },                       // 4
1101     { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },    // 5
1102     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },    // 6
1103     { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },    // 7
1104     { 0x8000, { 21600, 0, 0x406 } },                    // 8
1105     { 0xa000, { 0x408, 0, 0x406 } }                 // 9
1106 };
1107 static const sal_Int32 mso_sptLeftUpArrowDefault[] =
1108 {
1109     3, 9340, 18500, 6200
1110 };
1111 static const SvxMSDffTextRectangles mso_sptLeftUpArrowTextRect[] =
1112 {
1113     { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1114     { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1115 };
1116 static const SvxMSDffHandle mso_sptLeftUpArrowHandle[] =
1117 {
1118     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1119         0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1120     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1121         0x100, 0, 10800, 10800, 0x102, 3 + 9, 0x80000000, 0x7fffffff }
1122 };
1123 static const mso_CustomShape msoLeftUpArrow =
1124 {
1125     (SvxMSDffVertPair*)mso_sptLeftUpArrowVert, sizeof( mso_sptLeftUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1126     (sal_uInt16*)mso_sptLeftUpArrowSegm, sizeof( mso_sptLeftUpArrowSegm ) >> 1,
1127     (SvxMSDffCalculationData*)mso_sptLeftUpArrowCalc, sizeof( mso_sptLeftUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1128     (sal_Int32*)mso_sptLeftUpArrowDefault,
1129     (SvxMSDffTextRectangles*)mso_sptLeftUpArrowTextRect, sizeof( mso_sptLeftUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1130     21600, 21600,
1131     0x80000000, 0x80000000,
1132     NULL, 0,
1133     (SvxMSDffHandle*)mso_sptLeftUpArrowHandle, sizeof( mso_sptLeftUpArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
1134 };
1135 
1136 static const SvxMSDffVertPair mso_sptBentUpArrowVert[] =    // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1137 {                                                           // adjustment3 : y 0 - 21600
1138     { 0, 8 MSO_I }, { 7 MSO_I, 8 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },
1139     { 5 MSO_I, 0 }, { 21600, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 21600 },
1140     { 0, 21600 }
1141 };
1142 static const sal_uInt16 mso_sptBentUpArrowSegm[] =
1143 {
1144     0x4000, 0x0008, 0x6001, 0x8000
1145 };
1146 static const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] =
1147 {
1148     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0
1149     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },        // 1
1150     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },        // 2
1151     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3
1152     { 0x2001, { 0x0403, 1, 2 } },                       // 4
1153     { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },    // 5
1154     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },    // 6
1155     { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },    // 7
1156     { 0x6000, { 0x0407, 0x0406, 0 } },                  // 8
1157     { 0x8000, { 21600, 0, 0x406 } },                    // 9
1158     { 0xa000, { 0x409, 0, 0x406 } }                 // a
1159 };
1160 static const sal_Int32 mso_sptBentUpArrowDefault[] =
1161 {
1162     3, 9340, 18500, 7200
1163 };
1164 static const SvxMSDffTextRectangles mso_sptBentUpArrowTextRect[] =
1165 {
1166     { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1167     { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1168 };
1169 static const SvxMSDffHandle mso_sptBentUpArrowHandle[] =
1170 {
1171     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1172         0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1173     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1174         0x100, 0, 10800, 10800, 0x102, 3 + 10, 0x80000000, 0x7fffffff }
1175 };
1176 static const mso_CustomShape msoBentUpArrow =
1177 {
1178     (SvxMSDffVertPair*)mso_sptBentUpArrowVert, sizeof( mso_sptBentUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1179     (sal_uInt16*)mso_sptBentUpArrowSegm, sizeof( mso_sptBentUpArrowSegm ) >> 1,
1180     (SvxMSDffCalculationData*)mso_sptBentUpArrowCalc, sizeof( mso_sptBentUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1181     (sal_Int32*)mso_sptBentUpArrowDefault,
1182     (SvxMSDffTextRectangles*)mso_sptBentUpArrowTextRect, sizeof( mso_sptBentUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1183     21600, 21600,
1184     0x80000000, 0x80000000,
1185     NULL, 0,
1186     (SvxMSDffHandle*)mso_sptBentUpArrowHandle, sizeof( mso_sptBentUpArrowHandle ) / sizeof( SvxMSDffHandle )
1187 };
1188 
1189 static const SvxMSDffVertPair mso_sptCurvedRightVert[] =
1190 {
1191     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 0, 7 MSO_I }, { 2 MSO_I, 13 MSO_I },
1192     { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I },
1193     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I },
1194     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I },
1195     { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 0, 4 MSO_I }, { 26 MSO_I, 17 MSO_I },
1196     { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I }
1197 };
1198 static const sal_uInt16 mso_sptCurvedRightSegm[] =
1199 {
1200     0xa408,
1201     0x0003,
1202     0xa508,
1203     0x6000,
1204     0x8000,
1205     0xa404,
1206     0xa304,
1207     0xa504,
1208     0x6000,
1209     0x8000
1210 };
1211 static const SvxMSDffCalculationData mso_sptCurvedRightCalc[] =
1212 {
1213     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1214     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1215     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1216     { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1217     { 0x2001, { 0x403, 1, 2 } },
1218     { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1219     { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1220     { 0x2001, { 0x406, 1, 2 } },
1221     { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1222     { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } },
1223     { 0xa00f, { 0x409, 21600, 0x404 } },
1224     { 0x6000, { 0x404, 0x40a, 0 } },
1225     { 0x6000, { 0x40b, DFF_Prop_adjust2Value, 21600 } },
1226     { 0x6000, { 0x407, 0x40a, 0 } },
1227     { 0xa000, { 0x40c, 21600, DFF_Prop_adjustValue } },
1228     { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1229     { 0x2001, { 0x40f, 1, 2 } },
1230     { 0x6002, { 0x404, 0x407, 0 } },
1231     { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1232     { 0x2001, { 0x412, 1, 2 } },
1233     { 0xa000, { 0x411, 0, 0x413 } },
1234     { 0x0000, { 21600, 0, 0 } },
1235     { 0x0000, { 21600, 0, 0 } },
1236     { 0x0001, { 21600, 2, 1 } },
1237     { 0xa000, { 0x411, 0, 0x404 } },
1238     { 0x600f, { 0x418, 0x404, 21600 } },
1239     { 0x8000, { 21600, 0, 0x419 } },
1240     { 0x2000, { 0x408, 128, 0 } },
1241     { 0x2001, { 0x405, 1, 2 } },
1242     { 0x2000, { 0x405, 0, 128 } },
1243     { 0xe000, { DFF_Prop_adjustValue, 0x411, 0x40c } },
1244     { 0x600f, { 0x414, 0x404, 21600 } },
1245     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1246     { 0x2001, { 0x420, 1, 2 } },
1247     { 0x0001, { 21600, 21600, 1 } },
1248     { 0x6001, { 0x409, 0x409, 1 } },
1249     { 0xa000, { 0x422, 0, 0x423 } },
1250     { 0x200d, { 0x424, 0, 0 } },
1251     { 0x2000, { 0x425, 21600, 0 } },
1252     { 0x8001, { 21600, 21600, 0x426 } },
1253     { 0x2000, { 0x427, 64, 0 } },
1254     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1255     { 0x600f, { 0x421, 0x429, 21600 } },
1256     { 0x8000, { 21600, 0, 0x42a } },
1257     { 0x2000, { 0x42b, 64, 0 } },
1258     { 0x2001, { 0x404, 1, 2 } },
1259     { 0xa000, { DFF_Prop_adjust2Value, 0, 0x42d } },
1260     { 0x0001, { 21600, 2195, 16384 } },
1261     { 0x0001, { 21600, 14189, 16384 } }
1262 };
1263 static const sal_Int32 mso_sptCurvedRightDefault[] =
1264 {
1265     3, 12960, 19440, 14400
1266 };
1267 static const SvxMSDffTextRectangles mso_sptCurvedRightTextRect[] =
1268 {
1269     { { 47 MSO_I, 45 MSO_I }, { 48 MSO_I, 46 MSO_I } }
1270 };
1271 static const SvxMSDffVertPair mso_sptCurvedRightGluePoints[] =
1272 {
1273     { 0, 17 MSO_I }, { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I }, { 22 MSO_I, 16 MSO_I }
1274 };
1275 static const SvxMSDffHandle mso_sptCurvedRightHandles[] =
1276 {
1277     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1278         21600, 0x100, 10800, 10800, 0, 10800, 3 + 40, 3 + 29 },
1279     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1280         21600, 0x101, 10800, 10800, 0, 10800, 3 + 27, 3 + 21 },
1281     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1282         0x102, 21600, 10800, 10800, 3 + 44, 3 + 22, 3375, 21600 }
1283 };
1284 static const mso_CustomShape msoCurvedRightArrow =
1285 {
1286     (SvxMSDffVertPair*)mso_sptCurvedRightVert, sizeof( mso_sptCurvedRightVert ) / sizeof( SvxMSDffVertPair ),
1287     (sal_uInt16*)mso_sptCurvedRightSegm, sizeof( mso_sptCurvedRightSegm ) >> 1,
1288     (SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1289     (sal_Int32*)mso_sptCurvedRightDefault,
1290     (SvxMSDffTextRectangles*)mso_sptCurvedRightTextRect, sizeof( mso_sptCurvedRightTextRect ) / sizeof( SvxMSDffTextRectangles ),
1291     21600, 21600,
1292     0x80000000, 0x80000000,
1293     (SvxMSDffVertPair*)mso_sptCurvedRightGluePoints, sizeof( mso_sptCurvedRightGluePoints ) / sizeof( SvxMSDffVertPair ),
1294     (SvxMSDffHandle*)mso_sptCurvedRightHandles, sizeof( mso_sptCurvedRightHandles ) / sizeof( SvxMSDffHandle )
1295 };
1296 
1297 static const SvxMSDffVertPair mso_sptCurvedDownVert[] =
1298 {
1299     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1300     { 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 7 MSO_I, 0 }, { 13 MSO_I, 2 MSO_I },
1301     { 14 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I },
1302     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 11 MSO_I, 2 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 0 },
1303     { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I },
1304     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1305     { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 4 MSO_I, 0 }, { 17 MSO_I, 26 MSO_I },
1306     { 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I }
1307 };
1308 static const sal_uInt16 mso_sptCurvedDownSegm[] =
1309 {
1310     0xa608,
1311     0x0003,
1312     0xa308,
1313     0x6000,
1314     0x8000,
1315     0xa604,
1316     0xa504,
1317     0xa304,
1318     0x6000,
1319     0x8000
1320 };
1321 static const SvxMSDffTextRectangles mso_sptCurvedDownTextRect[] =
1322 {
1323     { { 45 MSO_I, 47 MSO_I }, { 46 MSO_I, 48 MSO_I } }
1324 };
1325 static const SvxMSDffVertPair mso_sptCurvedDownGluePoints[] =
1326 {
1327     { 17 MSO_I, 0 }, { 16 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 14 MSO_I, 2 MSO_I }
1328 };
1329 static const SvxMSDffHandle mso_sptCurvedDownHandles[] =
1330 {
1331     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1332         0x100, 21600, 10800, 10800, 3 + 40, 3 + 29, 0, 10800 },
1333     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1334         0x101, 21600, 10800, 10800, 3 + 27, 3 + 21, 0, 10800 },
1335     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1336         21600, 0x102, 10800, 10800, 3375, 21600, 3 + 44, 3 + 22 }
1337 };
1338 
1339 static const mso_CustomShape msoCurvedDownArrow =
1340 {
1341     (SvxMSDffVertPair*)mso_sptCurvedDownVert, sizeof( mso_sptCurvedDownVert ) / sizeof( SvxMSDffVertPair ),
1342     (sal_uInt16*)mso_sptCurvedDownSegm, sizeof( mso_sptCurvedDownSegm ) >> 1,
1343     (SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1344     (sal_Int32*)mso_sptCurvedRightDefault,
1345     (SvxMSDffTextRectangles*)mso_sptCurvedDownTextRect, sizeof( mso_sptCurvedDownTextRect ) / sizeof( SvxMSDffTextRectangles ),
1346     21600, 21600,
1347     0x80000000, 0x80000000,
1348     (SvxMSDffVertPair*)mso_sptCurvedDownGluePoints, sizeof( mso_sptCurvedDownGluePoints ) / sizeof( SvxMSDffVertPair ),
1349     (SvxMSDffHandle*)mso_sptCurvedDownHandles, sizeof( mso_sptCurvedDownHandles ) / sizeof( SvxMSDffHandle )
1350 };
1351 
1352 static const SvxMSDffVertPair mso_sptCurvedUpVert[] =
1353 {
1354     { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1355     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I },
1356     { 12 MSO_I, 2 MSO_I }, { 13 MSO_I, 2 MSO_I }, { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I },
1357     { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 10 MSO_I, 2 MSO_I }, { 16 MSO_I, 24 MSO_I },
1358     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 },
1359     { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1360     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I },
1361     { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 }
1362 };
1363 static const sal_uInt16 mso_sptCurvedUpSegm[] =
1364 {
1365     0xa408,
1366     0x0003,
1367     0xa508,
1368     0x6000,
1369     0x8000,
1370     0xa404,
1371     0xa508,
1372     0xa504,
1373     0x6000,
1374     0x8000
1375 };
1376 static const SvxMSDffCalculationData mso_sptCurvedUpCalc[] =
1377 {
1378     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1379     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1380     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1381     { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1382     { 0x2001, { 0x403, 1, 2 } },
1383     { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1384     { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1385     { 0x2001, { 0x406, 1, 2 } },
1386     { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1387     { 0xa00f, { DFF_Prop_adjust3Value, 21600, 0x404 } },
1388     { 0x6000, { 0x404, 0x409, 0 } },
1389     { 0x6000, { 0x40a, DFF_Prop_adjust2Value, 21600 } },
1390     { 0x6000, { 0x407, 0x409, 0 } },
1391     { 0xa000, { 0x40b, 21600, DFF_Prop_adjustValue } },
1392     { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1393     { 0x2001, { 0x40e, 1, 2 } },
1394     { 0x6002, { 0x404, 0x407, 0 } },
1395     { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1396     { 0x2001, { 0x411, 1, 2 } },
1397     { 0xa000, { 0x410, 0, 0x412 } },
1398     { 0x0000, { 21600, 0, 0 } },
1399     { 0x0000, { 21600, 0, 0 } },
1400     { 0x0000, { 0, 0, 21600 } },
1401     { 0xa000, { 0x410, 0, 0x404 } },
1402     { 0x600f, { 0x417, 0x404, 21600 } },
1403     { 0x2000, { 0x408, 128, 0 } },
1404     { 0x2001, { 0x405, 1, 2 } },
1405     { 0x2000, { 0x405, 0, 128 } },
1406     { 0xe000, { DFF_Prop_adjustValue, 0x410, 0x40b } },
1407     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1408     { 0x2001, { 0x41d, 1, 2 } },
1409     { 0x0001, { 21600, 21600, 1 } },
1410     { 0x6001, { DFF_Prop_adjust3Value, DFF_Prop_adjust3Value, 1 } },
1411     { 0xa000, { 0x41f, 0, 0x420 } },
1412     { 0x200d, { 0x421, 0, 0 } },
1413     { 0x2000, { 0x422, 21600, 0 } },
1414     { 0x8001, { 21600, 21600, 0x423 } },
1415     { 0x2000, { 0x424, 64, 0 } },
1416     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1417     { 0x600f, { 0x41e, 0x426, 21600 } },
1418     { 0x2000, { 0x427, 0, 64 } },
1419     { 0x2001, { 0x404, 1, 2 } },
1420     { 0xa000, { DFF_Prop_adjust2Value, 0, 0x429 } },
1421     { 0x0001, { 21600, 2195, 16384 } },
1422     { 0x0001, { 21600, 14189, 16384 } }
1423 };
1424 static const sal_Int32 mso_sptCurvedUpDefault[] =
1425 {
1426     3, 12960, 19440, 7200
1427 };
1428 static const SvxMSDffTextRectangles mso_sptCurvedUpTextRect[] =
1429 {
1430     { { 41 MSO_I, 43 MSO_I }, { 42 MSO_I, 44 MSO_I } }
1431 };
1432 static const SvxMSDffVertPair mso_sptCurvedUpGluePoints[] =
1433 {
1434     { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I }, { 15 MSO_I, 0 }, { 16 MSO_I, 21 MSO_I }, { 13 MSO_I, 2 MSO_I }
1435 };
1436 static const SvxMSDffHandle mso_sptCurvedUpHandles[] =
1437 {
1438     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1439         0x100, 0, 10800, 10800, 3 + 37, 3 + 27, 0, 10800 },
1440     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1441         0x101, 0, 10800, 10800, 3 + 25, 3 + 20, 0, 10800 },
1442     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1443         21600, 0x102, 10800, 10800, 3375, 21600, 0, 3 + 40 }
1444 };
1445 static const mso_CustomShape msoCurvedUpArrow =
1446 {
1447     (SvxMSDffVertPair*)mso_sptCurvedUpVert, sizeof( mso_sptCurvedUpVert ) / sizeof( SvxMSDffVertPair ),
1448     (sal_uInt16*)mso_sptCurvedUpSegm, sizeof( mso_sptCurvedUpSegm ) >> 1,
1449     (SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1450     (sal_Int32*)mso_sptCurvedUpDefault,
1451     (SvxMSDffTextRectangles*)mso_sptCurvedUpTextRect, sizeof( mso_sptCurvedUpTextRect ) / sizeof( SvxMSDffTextRectangles ),
1452     21600, 21600,
1453     0x80000000, 0x80000000,
1454     (SvxMSDffVertPair*)mso_sptCurvedUpGluePoints, sizeof( mso_sptCurvedUpGluePoints ) / sizeof( SvxMSDffVertPair ),
1455     (SvxMSDffHandle*)mso_sptCurvedUpHandles, sizeof( mso_sptCurvedUpHandles ) / sizeof( SvxMSDffHandle )
1456 };
1457 
1458 static const SvxMSDffVertPair mso_sptCurvedLeftVert[] =
1459 {
1460     { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1461     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 2 MSO_I, 12 MSO_I },
1462     { 2 MSO_I, 13 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 11 MSO_I },
1463     { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 2 MSO_I, 10 MSO_I }, { 24 MSO_I, 16 MSO_I },
1464     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I },
1465     { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1466     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 24 MSO_I, 16 MSO_I },
1467     { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I }
1468 };
1469 static const sal_uInt16 mso_sptCurvedLeftSegm[] =
1470 {
1471     0xa608,
1472     0x0003,
1473     0xa308,
1474     0x6000,
1475     0x8000,
1476     0xa604,
1477     0xa308,
1478     0x6000,
1479     0x8000
1480 };
1481 static const SvxMSDffTextRectangles mso_sptCurvedLeftTextRect[] =
1482 {
1483     { { 43 MSO_I, 41 MSO_I }, { 44 MSO_I, 42 MSO_I } }
1484 };
1485 static const SvxMSDffVertPair mso_sptCurvedLeftGluePoints[] =
1486 {
1487     { 0, 15 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 13 MSO_I }, { 21 MSO_I, 16 MSO_I }
1488 };
1489 static const SvxMSDffHandle mso_sptCurvedLeftHandles[] =
1490 {
1491     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1492         0, 0x100, 10800, 10800, 0, 10800, 3 + 37, 3 + 27 },
1493     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1494         0, 0x101, 10800, 10800, 0, 10800, 3 + 25, 3 + 20 },
1495     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1496         0x102, 21600, 10800, 10800, 0, 3 + 40, 3375, 21600 }
1497 };
1498 static const mso_CustomShape msoCurvedLeftArrow =
1499 {
1500     (SvxMSDffVertPair*)mso_sptCurvedLeftVert, sizeof( mso_sptCurvedLeftVert ) / sizeof( SvxMSDffVertPair ),
1501     (sal_uInt16*)mso_sptCurvedLeftSegm, sizeof( mso_sptCurvedLeftSegm ) >> 1,
1502     (SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1503     (sal_Int32*)mso_sptCurvedUpDefault,
1504     (SvxMSDffTextRectangles*)mso_sptCurvedLeftTextRect, sizeof( mso_sptCurvedLeftTextRect ) / sizeof( SvxMSDffTextRectangles ),
1505     21600, 21600,
1506     0x80000000, 0x80000000,
1507     (SvxMSDffVertPair*)mso_sptCurvedLeftGluePoints, sizeof( mso_sptCurvedLeftGluePoints ) / sizeof( SvxMSDffVertPair ),
1508     (SvxMSDffHandle*)mso_sptCurvedLeftHandles, sizeof( mso_sptCurvedLeftHandles ) / sizeof( SvxMSDffHandle )
1509 };
1510 
1511 static const SvxMSDffVertPair mso_sptStripedRightArrowVert[] =  // adjustment1 : x 3375 - 21600
1512 {                                                               // adjustment2 : y 0 - 10800
1513     { 3375, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
1514     { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 3375, 2 MSO_I }, { 0, 0 MSO_I },
1515     { 675, 0 MSO_I }, { 675, 2 MSO_I }, { 0, 2 MSO_I }, { 1350, 0 MSO_I },
1516     { 2700, 0 MSO_I }, { 2700, 2 MSO_I }, { 1350, 2 MSO_I }
1517 };
1518 static const sal_uInt16 mso_sptStripedRightArrowSegm[] =
1519 {
1520     0x4000, 0x0006, 0x6001, 0x8000,
1521     0x4000, 0x0003, 0x6001, 0x8000,
1522     0x4000, 0x0003, 0x6001, 0x8000
1523 };
1524 static const SvxMSDffCalculationData mso_sptStripedRightArrowCalc[] =
1525 {
1526     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1527     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1528     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1529     { 0x8000, { 21600, 0, 0x401 } },
1530     { 0x6001, { 0x403, 0x400, 10800 } },
1531     { 0x6000, { 0x401, 0x404, 0 } }
1532 };
1533 static const SvxMSDffTextRectangles mso_sptStripedRightArrowTextRect[] =
1534 {
1535     { { 3375, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
1536 };
1537 static const SvxMSDffHandle mso_sptStripedRightArrowHandle[] =
1538 {
1539     {   MSDFF_HANDLE_FLAGS_RANGE,
1540         0x100, 0x101, 10800, 10800, 3375, 21600, 0, 10800 }
1541 };
1542 static const mso_CustomShape msoStripedRightArrow =
1543 {
1544     (SvxMSDffVertPair*)mso_sptStripedRightArrowVert, sizeof( mso_sptStripedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1545     (sal_uInt16*)mso_sptStripedRightArrowSegm, sizeof( mso_sptStripedRightArrowSegm ) >> 1,
1546     (SvxMSDffCalculationData*)mso_sptStripedRightArrowCalc, sizeof( mso_sptStripedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1547     (sal_Int32*)mso_sptDefault16200and5400,
1548     (SvxMSDffTextRectangles*)mso_sptStripedRightArrowTextRect, sizeof( mso_sptStripedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1549     21600, 21600,
1550     0x80000000, 0x80000000,
1551     NULL, 0,
1552     (SvxMSDffHandle*)mso_sptStripedRightArrowHandle, sizeof( mso_sptStripedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1553 };
1554 
1555 static const SvxMSDffVertPair mso_sptNotchedRightArrowVert[] =  // adjustment1 : x 0 - 21600    (default 16200)
1556 {                                                               // adjustment2 : y 0 - 10800    (default 5400)
1557     { 0, 1 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 0 }, { 21600, 10800 },
1558     { 0 MSO_I, 21600 }, { 0 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }, { 5 MSO_I, 10800 }, { 0, 1 MSO_I }
1559 };
1560 static const SvxMSDffCalculationData mso_sptNotchedRightArrowCalc[] =
1561 {
1562     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1563     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1564     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1565     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1566     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
1567     { 0x6001, { 0x403, 0x404, 10800 } }
1568 };
1569 static const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] =    // todo
1570 {
1571     { { 0, 0 }, { 21600, 21600 } }
1572 };
1573 static const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] =
1574 {
1575     {   MSDFF_HANDLE_FLAGS_RANGE,
1576         0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
1577 };
1578 static const mso_CustomShape msoNotchedRightArrow =
1579 {
1580     (SvxMSDffVertPair*)mso_sptNotchedRightArrowVert, sizeof( mso_sptNotchedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1581     NULL, 0,
1582     (SvxMSDffCalculationData*)mso_sptNotchedRightArrowCalc, sizeof( mso_sptNotchedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1583     (sal_Int32*)mso_sptDefault16200and5400,
1584     (SvxMSDffTextRectangles*)mso_sptNotchedRightArrowTextRect, sizeof( mso_sptNotchedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1585     21600, 21600,
1586     0x80000000, 0x80000000,
1587     NULL, 0,
1588     (SvxMSDffHandle*)mso_sptNotchedRightArrowHandle, sizeof( mso_sptNotchedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1589 };
1590 
1591 static const SvxMSDffVertPair mso_sptHomePlateVert[] =  // adjustment1 : x 0 - 21600
1592 {
1593     { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1594     { 0, 21600 }
1595 };
1596 static const sal_uInt16 mso_sptHomePlateSegm[] =
1597 {
1598     0x4000, 0x0004, 0x6001, 0x8000
1599 };
1600 static const SvxMSDffCalculationData mso_sptHomePlateCalc[] =
1601 {
1602     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
1603 };
1604 static const sal_Int32 mso_sptHomePlateDefault[] =
1605 {
1606     1, 16200
1607 };
1608 static const SvxMSDffTextRectangles mso_sptHomePlateTextRect[] =    // todo
1609 {
1610     { { 0, 0 }, { 21600, 21600 } }
1611 };
1612 static const SvxMSDffHandle mso_sptHomePlateHandle[] =
1613 {
1614     {   MSDFF_HANDLE_FLAGS_RANGE,
1615         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1616 };
1617 static const mso_CustomShape msoHomePlate =
1618 {
1619     (SvxMSDffVertPair*)mso_sptHomePlateVert, sizeof( mso_sptHomePlateVert ) / sizeof( SvxMSDffVertPair ),
1620     (sal_uInt16*)mso_sptHomePlateSegm, sizeof( mso_sptHomePlateSegm ) >> 1,
1621     (SvxMSDffCalculationData*)mso_sptHomePlateCalc, sizeof( mso_sptHomePlateCalc ) / sizeof( SvxMSDffCalculationData ),
1622     (sal_Int32*)mso_sptHomePlateDefault,
1623     (SvxMSDffTextRectangles*)mso_sptHomePlateTextRect, sizeof( mso_sptHomePlateTextRect ) / sizeof( SvxMSDffTextRectangles ),
1624     21600, 21600,
1625     0x80000000, 0x80000000,
1626     NULL, 0,
1627     (SvxMSDffHandle*)mso_sptHomePlateHandle, sizeof( mso_sptHomePlateHandle ) / sizeof( SvxMSDffHandle )
1628 };
1629 
1630 static const SvxMSDffVertPair mso_sptChevronVert[] =    // adjustment1 : x 0 - 21600
1631 {
1632     { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1633     { 0, 21600 }, { 1 MSO_I, 10800 }
1634 };
1635 static const sal_uInt16 mso_sptChevronSegm[] =
1636 {
1637     0x4000, 0x0005, 0x6001, 0x8000
1638 };
1639 static const SvxMSDffCalculationData mso_sptChevronCalc[] =
1640 {
1641     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1642     { 0x8000, { 21600, 0, 0x0400 } }
1643 };
1644 static const sal_Int32 mso_sptChevronDefault[] =
1645 {
1646     1, 16200
1647 };
1648 static const SvxMSDffTextRectangles mso_sptChevronTextRect[] =  // todo
1649 {
1650     { { 0, 0 }, { 21600, 21600 } }
1651 };
1652 static const SvxMSDffHandle mso_sptChevronHandle[] =
1653 {
1654     {   MSDFF_HANDLE_FLAGS_RANGE,
1655         0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1656 };
1657 static const mso_CustomShape msoChevron =
1658 {
1659     (SvxMSDffVertPair*)mso_sptChevronVert, sizeof( mso_sptChevronVert ) / sizeof( SvxMSDffVertPair ),
1660     (sal_uInt16*)mso_sptChevronSegm, sizeof( mso_sptChevronSegm ) >> 1,
1661     (SvxMSDffCalculationData*)mso_sptChevronCalc, sizeof( mso_sptChevronCalc ) / sizeof( SvxMSDffCalculationData ),
1662     (sal_Int32*)mso_sptChevronDefault,
1663     (SvxMSDffTextRectangles*)mso_sptChevronTextRect, sizeof( mso_sptChevronTextRect ) / sizeof( SvxMSDffTextRectangles ),
1664     21600, 21600,
1665     0x80000000, 0x80000000,
1666     NULL, 0,
1667     (SvxMSDffHandle*)mso_sptChevronHandle, sizeof( mso_sptChevronHandle ) / sizeof( SvxMSDffHandle )
1668 };
1669 
1670 static const SvxMSDffVertPair mso_sptRightArrowCalloutVert[] =  // adjustment1 : x 0 - 21000
1671 {                                                               // adjustment2 : y 0 - 10800
1672     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
1673     { 2 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 5 MSO_I },
1674     { 0 MSO_I, 5 MSO_I }, { 0 MSO_I, 21600 }, { 0, 21600 }
1675 };
1676 static const sal_uInt16 mso_sptRightArrowCalloutSegm[] =
1677 {
1678     0x4000, 0x000a, 0x6001, 0x8000
1679 };
1680 static const SvxMSDffCalculationData mso_sptRightArrowCalloutCalc[] =
1681 {
1682     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1683     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1684     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1685     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1686     { 0x8000, { 21600, 0, 0x0401 } },
1687     { 0x8000, { 21600, 0, 0x0403 } }
1688 };
1689 static const sal_Int32 mso_sptRightArrowCalloutDefault[] =
1690 {
1691     4, 14400, 5400, 18000, 8100
1692 };
1693 static const SvxMSDffTextRectangles mso_sptRightArrowCalloutTextRect[] =
1694 {
1695     { { 0, 0 }, { 0 MSO_I, 21600 } }
1696 };
1697 static const SvxMSDffHandle mso_sptRightArrowCalloutHandle[] =
1698 {
1699     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1700         0x100, 0, 10800, 10800, 0, 0x102, 0x80000000, 0x7fffffff },
1701     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1702         0x102, 0x103, 10800, 10800, 0x100, 21600, 0x101, 10800 },
1703     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1704         1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1705 };
1706 static const mso_CustomShape msoRightArrowCallout =
1707 {
1708     (SvxMSDffVertPair*)mso_sptRightArrowCalloutVert, sizeof( mso_sptRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1709     (sal_uInt16*)mso_sptRightArrowCalloutSegm, sizeof( mso_sptRightArrowCalloutSegm ) >> 1,
1710     (SvxMSDffCalculationData*)mso_sptRightArrowCalloutCalc, sizeof( mso_sptRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1711     (sal_Int32*)mso_sptRightArrowCalloutDefault,
1712     (SvxMSDffTextRectangles*)mso_sptRightArrowCalloutTextRect, sizeof( mso_sptRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1713     21600, 21600,
1714     0x80000000, 0x80000000,
1715     NULL, 0,
1716     (SvxMSDffHandle*)mso_sptRightArrowCalloutHandle, sizeof( mso_sptRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1717 };
1718 
1719 static const SvxMSDffVertPair mso_sptLeftArrowCalloutVert[] =   // adjustment1 : x 0 - 21600, adjustment2 : y 0 - 10800
1720 {                                                               // adjustment3 : x 0 - 21600, adjustment4 : y 0 - 10800
1721     { 0 MSO_I, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0 MSO_I, 21600 },
1722     { 0 MSO_I, 5 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0, 10800 },
1723     { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1724 };
1725 static const sal_uInt16 mso_sptLeftArrowCalloutSegm[] =
1726 {
1727     0x4000, 0x000a, 0x6001, 0x8000
1728 };
1729 static const SvxMSDffCalculationData mso_sptLeftArrowCalloutCalc[] =
1730 {
1731     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1732     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1733     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1734     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1735     { 0x8000, { 21600, 0, 0x0401 } },
1736     { 0x8000, { 21600, 0, 0x0403 } }
1737 };
1738 static const sal_Int32 mso_sptLeftArrowCalloutDefault[] =
1739 {
1740     4, 7200, 5400, 3600, 8100
1741 };
1742 static const SvxMSDffTextRectangles mso_sptLeftArrowCalloutTextRect[] =
1743 {
1744     { { 0 MSO_I, 0 }, { 21600, 21600 } }
1745 };
1746 static const SvxMSDffHandle mso_sptLeftArrowCalloutHandle[] =
1747 {
1748     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1749         0x100, 0, 10800, 10800, 0x102, 21600, 0x80000000, 0x7fffffff },
1750     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1751         0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1752     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1753         0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1754 };
1755 static const mso_CustomShape msoLeftArrowCallout =
1756 {
1757     (SvxMSDffVertPair*)mso_sptLeftArrowCalloutVert, sizeof( mso_sptLeftArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1758     (sal_uInt16*)mso_sptLeftArrowCalloutSegm, sizeof( mso_sptLeftArrowCalloutSegm ) >> 1,
1759     (SvxMSDffCalculationData*)mso_sptLeftArrowCalloutCalc, sizeof( mso_sptLeftArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1760     (sal_Int32*)mso_sptLeftArrowCalloutDefault,
1761     (SvxMSDffTextRectangles*)mso_sptLeftArrowCalloutTextRect, sizeof( mso_sptLeftArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1762     21600, 21600,
1763     0x80000000, 0x80000000,
1764     NULL, 0,
1765     (SvxMSDffHandle*)mso_sptLeftArrowCalloutHandle, sizeof( mso_sptLeftArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1766 };
1767 
1768 static const SvxMSDffVertPair mso_sptUpArrowCalloutVert[] =
1769 {
1770     { 21600, 0 MSO_I }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 MSO_I },
1771     { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 10800, 0 },
1772     { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 MSO_I }
1773 };
1774 static const sal_uInt16 mso_sptUpArrowCalloutSegm[] =
1775 {
1776     0x4000, 0x000a, 0x6001, 0x8000
1777 };
1778 static const SvxMSDffCalculationData mso_sptUpArrowCalloutCalc[] =
1779 {
1780     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1781     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1782     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1783     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1784     { 0x8000, { 21600, 0, 0x0401 } },
1785     { 0x8000, { 21600, 0, 0x0403 } }
1786 };
1787 static const sal_Int32 mso_sptUpArrowCalloutDefault[] =
1788 {
1789     4, 7200, 5400, 3600, 8100
1790 };
1791 static const SvxMSDffTextRectangles mso_sptUpArrowCalloutTextRect[] =
1792 {
1793     { { 0, 0 MSO_I }, { 21600, 21600 } }
1794 };
1795 static const SvxMSDffHandle mso_sptUpArrowCalloutHandle[] =
1796 {
1797     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1798         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 21600 },
1799     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1800         0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1801     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1802         0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1803 };
1804 static const mso_CustomShape msoUpArrowCallout =
1805 {
1806     (SvxMSDffVertPair*)mso_sptUpArrowCalloutVert, sizeof( mso_sptUpArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1807     (sal_uInt16*)mso_sptUpArrowCalloutSegm, sizeof( mso_sptUpArrowCalloutSegm ) >> 1,
1808     (SvxMSDffCalculationData*)mso_sptUpArrowCalloutCalc, sizeof( mso_sptUpArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1809     (sal_Int32*)mso_sptUpArrowCalloutDefault,
1810     (SvxMSDffTextRectangles*)mso_sptUpArrowCalloutTextRect, sizeof( mso_sptUpArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1811     21600, 21600,
1812     0x80000000, 0x80000000,
1813     NULL, 0,
1814     (SvxMSDffHandle*)mso_sptUpArrowCalloutHandle, sizeof( mso_sptUpArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1815 };
1816 
1817 static const SvxMSDffVertPair mso_sptDownArrowCalloutVert[] =
1818 {
1819     { 0, 0 MSO_I }, { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I },
1820     { 5 MSO_I, 0 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 10800, 21600 },
1821     { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1822 };
1823 static const sal_uInt16 mso_sptDownArrowCalloutSegm[] =
1824 {
1825     0x4000, 0x000a, 0x6001, 0x8000
1826 };
1827 static const SvxMSDffCalculationData mso_sptDownArrowCalloutCalc[] =
1828 {
1829     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1830     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1831     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1832     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1833     { 0x8000, { 21600, 0, 0x0401 } },
1834     { 0x8000, { 21600, 0, 0x0403 } }
1835 };
1836 static const sal_Int32 mso_sptDownArrowCalloutDefault[] =
1837 {
1838     4, 14400, 5400, 18000, 8100
1839 };
1840 static const SvxMSDffTextRectangles mso_sptDownArrowCalloutTextRect[] =
1841 {
1842     { { 0, 0 }, { 21600, 0 MSO_I } }
1843 };
1844 static const SvxMSDffHandle mso_sptDownArrowCalloutHandle[] =
1845 {
1846     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1847         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x102 },
1848     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1849         0x103, 0x102, 10800, 10800, 0x101, 10800, 0x100, 21600 },
1850     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1851         0x101, 1, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1852 };
1853 static const mso_CustomShape msoDownArrowCallout =
1854 {
1855     (SvxMSDffVertPair*)mso_sptDownArrowCalloutVert, sizeof( mso_sptDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1856     (sal_uInt16*)mso_sptDownArrowCalloutSegm, sizeof( mso_sptDownArrowCalloutSegm ) >> 1,
1857     (SvxMSDffCalculationData*)mso_sptDownArrowCalloutCalc, sizeof( mso_sptDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1858     (sal_Int32*)mso_sptDownArrowCalloutDefault,
1859     (SvxMSDffTextRectangles*)mso_sptDownArrowCalloutTextRect, sizeof( mso_sptDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1860     21600, 21600,
1861     0x80000000, 0x80000000,
1862     NULL, 0,
1863     (SvxMSDffHandle*)mso_sptDownArrowCalloutHandle, sizeof( mso_sptDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1864 };
1865 
1866 static const SvxMSDffVertPair mso_sptLeftRightArrowCalloutVert[] =
1867 {
1868     { 0 MSO_I, 0 }, { 4 MSO_I, 0 }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I },
1869     { 6 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I },
1870     { 4 MSO_I, 7 MSO_I }, { 4 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0 MSO_I, 7 MSO_I },
1871     { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 0, 10800 }, { 2 MSO_I, 1 MSO_I },
1872     { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1873 };
1874 static const sal_uInt16 mso_sptLeftRightArrowCalloutSegm[] =
1875 {
1876     0x4000, 0x0011, 0x6001, 0x8000
1877 };
1878 static const SvxMSDffCalculationData mso_sptLeftRightArrowCalloutCalc[] =
1879 {
1880     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1881     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1882     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1883     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1884     { 0x8000, { 21600, 0, 0x0400 } },
1885     { 0x8000, { 21600, 0, 0x0401 } },
1886     { 0x8000, { 21600, 0, 0x0402 } },
1887     { 0x8000, { 21600, 0, 0x0403 } }
1888 };
1889 static const sal_Int32 mso_sptLeftRightArrowCalloutDefault[] =
1890 {
1891     4, 5400, 5500, 2700, 8100
1892 };
1893 static const SvxMSDffTextRectangles mso_sptLeftRightArrowCalloutTextRect[] =
1894 {
1895     { { 0 MSO_I, 0 }, { 4 MSO_I, 21600 } }
1896 };
1897 static const SvxMSDffHandle mso_sptLeftRightArrowCalloutHandle[] =
1898 {
1899     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1900         0x100, 0, 10800, 10800, 0x102, 10800, 0x80000000, 0x7fffffff },
1901     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1902         0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1903     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1904         0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1905 };
1906 static const mso_CustomShape msoLeftRightArrowCallout =
1907 {
1908     (SvxMSDffVertPair*)mso_sptLeftRightArrowCalloutVert, sizeof( mso_sptLeftRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1909     (sal_uInt16*)mso_sptLeftRightArrowCalloutSegm, sizeof( mso_sptLeftRightArrowCalloutSegm ) >> 1,
1910     (SvxMSDffCalculationData*)mso_sptLeftRightArrowCalloutCalc, sizeof( mso_sptLeftRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1911     (sal_Int32*)mso_sptLeftRightArrowCalloutDefault,
1912     (SvxMSDffTextRectangles*)mso_sptLeftRightArrowCalloutTextRect, sizeof( mso_sptLeftRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1913     21600, 21600,
1914     0x80000000, 0x80000000,
1915     NULL, 0,
1916     (SvxMSDffHandle*)mso_sptLeftRightArrowCalloutHandle, sizeof( mso_sptLeftRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1917 };
1918 
1919 static const SvxMSDffVertPair mso_sptUpDownArrowCalloutVert[] =
1920 {
1921     { 0, 0 MSO_I }, { 0, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 6 MSO_I },
1922     { 1 MSO_I, 6 MSO_I }, { 10800, 21600 }, { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 6 MSO_I },
1923     { 7 MSO_I, 4 MSO_I }, { 21600, 4 MSO_I }, { 21600, 0 MSO_I }, { 7 MSO_I, 0 MSO_I },
1924     { 7 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 10800, 0 }, { 1 MSO_I, 2 MSO_I },
1925     { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1926 };
1927 static const sal_uInt16 mso_sptUpDownArrowCalloutSegm[] =
1928 {
1929     0x4000, 0x0011, 0x6001, 0x8000
1930 };
1931 static const SvxMSDffCalculationData mso_sptUpDownArrowCalloutCalc[] =
1932 {
1933     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1934     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1935     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1936     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1937     { 0x8000, { 21600, 0, 0x0400 } },
1938     { 0x8000, { 21600, 0, 0x0401 } },
1939     { 0x8000, { 21600, 0, 0x0402 } },
1940     { 0x8000, { 21600, 0, 0x0403 } }
1941 };
1942 static const sal_Int32 mso_sptUpDownArrowCalloutDefault[] =
1943 {
1944     4, 5400, 5500, 2700, 8100
1945 };
1946 static const SvxMSDffTextRectangles mso_sptUpDownArrowCalloutTextRect[] =
1947 {
1948     { { 0, 0 MSO_I }, { 21600, 4 MSO_I } }
1949 };
1950 static const SvxMSDffHandle mso_sptUpDownArrowCalloutHandle[] =
1951 {
1952     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1953         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 10800 },
1954     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1955         0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1956     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1957         0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1958 };
1959 static const mso_CustomShape msoUpDownArrowCallout =
1960 {
1961     (SvxMSDffVertPair*)mso_sptUpDownArrowCalloutVert, sizeof( mso_sptUpDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1962     (sal_uInt16*)mso_sptUpDownArrowCalloutSegm, sizeof( mso_sptUpDownArrowCalloutSegm ) >> 1,
1963     (SvxMSDffCalculationData*)mso_sptUpDownArrowCalloutCalc, sizeof( mso_sptUpDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1964     (sal_Int32*)mso_sptUpDownArrowCalloutDefault,
1965     (SvxMSDffTextRectangles*)mso_sptUpDownArrowCalloutTextRect, sizeof( mso_sptUpDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1966     21600, 21600,
1967     0x80000000, 0x80000000,
1968     NULL, 0,
1969     (SvxMSDffHandle*)mso_sptUpDownArrowCalloutHandle, sizeof( mso_sptUpDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1970 };
1971 
1972 static const SvxMSDffVertPair mso_sptQuadArrowCalloutVert[] =
1973 {
1974     { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
1975     { 10800, 0 }, { 5 MSO_I, 2 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 7 MSO_I, 0 MSO_I },
1976     { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, { 6 MSO_I, 1 MSO_I },
1977     { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 7 MSO_I },
1978     { 4 MSO_I, 4 MSO_I }, { 7 MSO_I, 4 MSO_I }, { 7 MSO_I, 6 MSO_I }, { 5 MSO_I, 6 MSO_I },
1979     { 10800, 21600 }, { 1 MSO_I, 6 MSO_I }, { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 4 MSO_I },
1980     { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I },
1981     { 0, 10800 }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1982 };
1983 static const sal_uInt16 mso_sptQuadArrowCalloutSegm[] =
1984 {
1985     0x4000, 0x001f, 0x6001, 0x8000
1986 };
1987 static const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] =
1988 {
1989     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1990     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1991     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1992     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1993     { 0x8000, { 21600, 0, 0x0400 } },
1994     { 0x8000, { 21600, 0, 0x0401 } },
1995     { 0x8000, { 21600, 0, 0x0402 } },
1996     { 0x8000, { 21600, 0, 0x0403 } }
1997 };
1998 static const sal_Int32 mso_sptQuadArrowCalloutDefault[] =
1999 {
2000     4, 5400, 8100, 2700, 9400
2001 };
2002 static const SvxMSDffTextRectangles mso_sptQuadArrowCalloutTextRect[] =
2003 {
2004     { { 0 MSO_I, 0 MSO_I }, { 4 MSO_I, 4 MSO_I } }
2005 };
2006 static const SvxMSDffHandle mso_sptQuadArrowCalloutHandle[] =
2007 {
2008     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2009         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 0x101 },
2010     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
2011         0x101, 0, 10800, 10800, 0x100, 10800, 0x80000000, 0x7fffffff },
2012     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2013         0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 }
2014 };
2015 static const mso_CustomShape msoQuadArrowCallout =
2016 {
2017     (SvxMSDffVertPair*)mso_sptQuadArrowCalloutVert, sizeof( mso_sptQuadArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
2018     (sal_uInt16*)mso_sptQuadArrowCalloutSegm, sizeof( mso_sptQuadArrowCalloutSegm ) >> 1,
2019     (SvxMSDffCalculationData*)mso_sptQuadArrowCalloutCalc, sizeof( mso_sptQuadArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
2020     (sal_Int32*)mso_sptQuadArrowCalloutDefault,
2021     (SvxMSDffTextRectangles*)mso_sptQuadArrowCalloutTextRect, sizeof( mso_sptQuadArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
2022     21600, 21600,
2023     0x80000000, 0x80000000,
2024     NULL, 0,
2025     (SvxMSDffHandle*)mso_sptQuadArrowCalloutHandle, sizeof( mso_sptQuadArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
2026 };
2027 
2028 static const SvxMSDffVertPair mso_sptCircularArrowVert[] =
2029 {
2030     { 0x03 MSO_I, 0x03 MSO_I },
2031     { 0x14 MSO_I, 0x14 MSO_I },
2032     { 0x13 MSO_I, 0x12 MSO_I },
2033     { 0x11 MSO_I, 0x10 MSO_I },
2034     { 0, 0 }, { 21600, 21600 },
2035     { 0x09 MSO_I, 0x08 MSO_I },
2036     { 0x0B MSO_I, 0x0A MSO_I },
2037     { 0x18 MSO_I, 0x17 MSO_I },
2038     { 0x2F MSO_I, 0x2E MSO_I },
2039     { 0x1D MSO_I, 0x1C MSO_I }
2040 };
2041 static const sal_uInt16 mso_sptCircularArrowSegm[] =
2042 {
2043     0xa404, 0xa504, 0x0003, 0x6001, 0x8000
2044 };
2045 static const SvxMSDffCalculationData mso_sptCircularArrowCalc[] =
2046 {
2047     { 0x2000, { 0x0147, 0x0000, 0x0000 } },
2048     { 0x2000, { 0x0148, 0x0000, 0x0000 } },
2049     { 0x2000, { 0x0149, 0x0000, 0x0000 } },
2050     { 0x4000, { 0x2A30, 0x0149, 0x0000 } },
2051     { 0x4009, { 0x2A30, 0x0147, 0x0000 } },
2052     { 0x400A, { 0x2A30, 0x0147, 0x0000 } },
2053     { 0x4009, { 0x2A30, 0x0148, 0x0000 } },
2054     { 0x400A, { 0x2A30, 0x0148, 0x0000 } },
2055     { 0x2000, { 0x0404, 0x2A30, 0x0000 } },
2056     { 0x2000, { 0x0405, 0x2A30, 0x0000 } },
2057     { 0x2000, { 0x0406, 0x2A30, 0x0000 } },
2058     { 0x2000, { 0x0407, 0x2A30, 0x0000 } },
2059     { 0x6009, { 0x0403, 0x0147, 0x0000 } },
2060     { 0x600A, { 0x0403, 0x0147, 0x0000 } },
2061     { 0x6009, { 0x0403, 0x0148, 0x0000 } },
2062     { 0x600A, { 0x0403, 0x0148, 0x0000 } },
2063     { 0x2000, { 0x040C, 0x2A30, 0x0000 } },
2064     { 0x2000, { 0x040D, 0x2A30, 0x0000 } },
2065     { 0x2000, { 0x040E, 0x2A30, 0x0000 } },
2066     { 0x2000, { 0x040F, 0x2A30, 0x0000 } },
2067     { 0x8000, { 0x5460, 0x0000, 0x0403 } },
2068     { 0x4009, { 0x34BC, 0x0148, 0x0000 } },
2069     { 0x400A, { 0x34BC, 0x0148, 0x0000 } },
2070     { 0x2000, { 0x0415, 0x2A30, 0x0000 } },
2071     { 0x2000, { 0x0416, 0x2A30, 0x0000 } },
2072     { 0x2000, { 0x0149, 0x0000, 0x0A8C } },
2073     { 0x6009, { 0x0419, 0x0148, 0x0000 } },
2074     { 0x600A, { 0x0419, 0x0148, 0x0000 } },
2075     { 0x2000, { 0x041A, 0x2A30, 0x0000 } },
2076     { 0x2000, { 0x041B, 0x2A30, 0x0000 } },
2077     { 0xA000, { 0x041D, 0x0000, 0x0418 } },
2078     { 0xA000, { 0x041D, 0x0000, 0x0418 } },
2079     { 0x6001, { 0x041E, 0x041F, 0x0001 } },
2080     { 0xA000, { 0x041C, 0x0000, 0x0417 } },
2081     { 0xA000, { 0x041C, 0x0000, 0x0417 } },
2082     { 0x6001, { 0x0421, 0x0422, 0x0001 } },
2083     { 0x6000, { 0x0420, 0x0423, 0x0000 } },
2084     { 0x200D, { 0x0424, 0x0000, 0x0000 } },
2085     { 0x200E, { 0x0148, 0x002D, 0x0000 } },
2086     { 0x6009, { 0x0425, 0x0426, 0x0000 } },
2087     { 0x200E, { 0x0148, 0x002D, 0x0000 } },
2088     { 0x600A, { 0x0425, 0x0428, 0x0000 } },
2089     { 0x000E, { 0x0000, 0x002D, 0x0000 } },
2090     { 0x6009, { 0x0427, 0x042A, 0x0000 } },
2091     { 0x000E, { 0x0000, 0x002D, 0x0000 } },
2092     { 0x6009, { 0x0429, 0x042C, 0x0000 } },
2093     { 0x6000, { 0x041C, 0x042B, 0x0000 } },
2094     { 0x6000, { 0x041D, 0x042D, 0x0000 } }
2095 };
2096 static const sal_Int32 mso_sptCircularArrowDefault[] =
2097 {
2098     3, 180, 0, 5500
2099 };
2100 static const SvxMSDffTextRectangles mso_sptCircularArrowTextRect[] =    // todo
2101 {
2102     { { 0, 0 }, { 21600, 21600 } }
2103 };
2104 static const SvxMSDffHandle mso_sptCircularArrowHandle[] =
2105 {
2106     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2107         10800, 0x100, 10800, 10800, 10800, 10800, 0xff4c0000, 0x00b40000 },
2108     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2109         0x102, 0x101, 10800, 10800, 0, 10800, 0xff4c0000, 0x00b40000 }
2110 };
2111 static const mso_CustomShape msoCircularArrow =
2112 {
2113     (SvxMSDffVertPair*)mso_sptCircularArrowVert, sizeof( mso_sptCircularArrowVert ) / sizeof( SvxMSDffVertPair ),
2114     (sal_uInt16*)mso_sptCircularArrowSegm, sizeof( mso_sptCircularArrowSegm ) >> 1,
2115     (SvxMSDffCalculationData*)mso_sptCircularArrowCalc, sizeof( mso_sptCircularArrowCalc ) / sizeof( SvxMSDffCalculationData ),
2116     (sal_Int32*)mso_sptCircularArrowDefault,
2117     (SvxMSDffTextRectangles*)mso_sptCircularArrowTextRect, sizeof( mso_sptCircularArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
2118     21600, 21600,
2119     0x80000000, 0x80000000,
2120     NULL, 0,
2121     (SvxMSDffHandle*)mso_sptCircularArrowHandle, sizeof( mso_sptCircularArrowHandle ) / sizeof( SvxMSDffHandle )        // handles
2122 };
2123 
2124 static const SvxMSDffVertPair mso_sptCubeVert[] =
2125 {
2126     { 0, 12 MSO_I }, { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }, { 4 MSO_I, 12 MSO_I },
2127     { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 4 MSO_I, 1 MSO_I },
2128     { 4 MSO_I, 12 MSO_I  }, { 4 MSO_I, 1 MSO_I },   { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }
2129 };
2130 static const sal_uInt16 mso_sptCubeSegm[] =
2131 {
2132     0x4000, 0x0005, 0x6001, 0x8000,
2133     0x4000, 0x0003, 0x6001, 0x8000,
2134     0x4000, 0x0003, 0x6001, 0x8000
2135 };
2136 static const SvxMSDffCalculationData mso_sptCubeCalc[] =
2137 {
2138     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2139     { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
2140     { 0x6000, { DFF_Prop_geoLeft, 0x400, 0 } },
2141     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
2142     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2143     { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },    // 5
2144     { 0x2001, { 0x405, 1, 2 } },                    // 6
2145     { 0x6000, { 0x402, 0x406, 0 } },                // 7
2146     { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },   // 8
2147     { 0x2001, { 0x408, 1, 2 } },                    // 9
2148     { 0x6000, { 0x401, 0x409, 0 } },                // 10
2149     { 0x2000, { DFF_Prop_geoRight, 0, 0 } },        // 11
2150     { 0x2000, { DFF_Prop_geoBottom, 0, 0 } }        // 12
2151 };
2152 static const SvxMSDffTextRectangles mso_sptCubeTextRect[] =
2153 {
2154     { { 0, 1 MSO_I }, { 4 MSO_I, 12 MSO_I } }
2155 };
2156 static const SvxMSDffHandle mso_sptCubeHandle[] =
2157 {
2158     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2159         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
2160 };
2161 static const SvxMSDffVertPair mso_sptCubeGluePoints[] =
2162 {
2163     { 7 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I }, { 0, 10 MSO_I }, { 6 MSO_I, 21600 }, { 4 MSO_I, 10 MSO_I }, { 21600, 9 MSO_I }
2164 };
2165 static const mso_CustomShape msoCube =
2166 {
2167     (SvxMSDffVertPair*)mso_sptCubeVert, sizeof( mso_sptCubeVert ) / sizeof( SvxMSDffVertPair ),
2168     (sal_uInt16*)mso_sptCubeSegm, sizeof( mso_sptCubeSegm ) >> 1,
2169     (SvxMSDffCalculationData*)mso_sptCubeCalc, sizeof( mso_sptCubeCalc ) / sizeof( SvxMSDffCalculationData ),
2170     (sal_Int32*)mso_sptDefault5400,
2171     (SvxMSDffTextRectangles*)mso_sptCubeTextRect, sizeof( mso_sptCubeTextRect ) / sizeof( SvxMSDffTextRectangles ),
2172     21600, 21600,
2173     10800, 10800,
2174     (SvxMSDffVertPair*)mso_sptCubeGluePoints, sizeof( mso_sptCubeGluePoints ) / sizeof( SvxMSDffVertPair ),
2175     (SvxMSDffHandle*)mso_sptCubeHandle, sizeof( mso_sptCubeHandle ) / sizeof( SvxMSDffHandle )
2176 };
2177 
2178 static const SvxMSDffVertPair mso_sptBevelVert[] =
2179 {
2180     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2181     { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2182     { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2183     { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2184     { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2185 };
2186 static const sal_uInt16 mso_sptBevelSegm[] =
2187 {
2188     0x4000, 0x0003, 0x6001, 0x8000,
2189     0x4000, 0x0003, 0x6001, 0x8000,
2190     0x4000, 0x0003, 0x6001, 0x8000,
2191     0x4000, 0x0003, 0x6001, 0x8000,
2192     0x4000, 0x0003, 0x6001, 0x8000
2193 };
2194 static const SvxMSDffCalculationData mso_sptBevelCalc[] =
2195 {
2196     { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2197     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2198     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2199 };
2200 
2201 static const SvxMSDffTextRectangles mso_sptBevelTextRect[] =
2202 {
2203     { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2204 };
2205 static const SvxMSDffHandle mso_sptBevelHandle[] =
2206 {
2207     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2208         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
2209 };
2210 static const mso_CustomShape msoBevel =
2211 {
2212     (SvxMSDffVertPair*)mso_sptBevelVert, sizeof( mso_sptBevelVert ) / sizeof( SvxMSDffVertPair ),
2213     (sal_uInt16*)mso_sptBevelSegm, sizeof( mso_sptBevelSegm ) >> 1,
2214     (SvxMSDffCalculationData*)mso_sptBevelCalc, sizeof( mso_sptBevelCalc ) / sizeof( SvxMSDffCalculationData ),
2215     (sal_Int32*)mso_sptDefault2700,
2216     (SvxMSDffTextRectangles*)mso_sptBevelTextRect, sizeof( mso_sptBevelTextRect ) / sizeof( SvxMSDffTextRectangles ),
2217     21600, 21600,
2218     10800, 10800,
2219     NULL, 0,
2220     (SvxMSDffHandle*)mso_sptBevelHandle, sizeof( mso_sptBevelHandle ) / sizeof( SvxMSDffHandle )
2221 };
2222 
2223 static const SvxMSDffVertPair mso_sptFoldedCornerVert[] =   // adjustment1 : x 10800 - 21600
2224 {
2225     { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, { 0 MSO_I, 21600 },
2226     { 0, 21600 }, { 0 MSO_I, 21600 }, { 3 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I },
2227     { 10 MSO_I, 11 MSO_I }, { 21600, 0 MSO_I }
2228 };
2229 static const sal_uInt16 mso_sptFoldedCornerSegm[] =
2230 {
2231     0x4000, 0x0004, 0x6001, 0x8000,
2232     0x4000, 0x0001, 0x2001, 0x6001, 0x8000
2233 };
2234 static const SvxMSDffCalculationData mso_sptFoldedCornerCalc[] =
2235 {
2236     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2237     { 0x8000, { 21600, 0, 0x400 } },
2238     { 0x2001, { 0x0401, 8000, 10800 } },
2239     { 0x8000, { 21600, 0, 0x0402 } },
2240     { 0x2001, { 0x0401, 1, 2 } },
2241     { 0x2001, { 0x0401, 1, 4 } },
2242     { 0x2001, { 0x0401, 1, 7 } },
2243     { 0x2001, { 0x0401, 1, 16 } },
2244     { 0x6000, { 0x0403, 0x405, 0 } },
2245     { 0x6000, { 0x0400, 0x406, 0 } },
2246     { 0x8000, { 21600, 0, 0x404 } },
2247     { 0x6000, { 0x400, 0x407, 0 } }
2248 };
2249 static const sal_Int32 mso_sptFoldedCornerDefault[] =
2250 {
2251     1, 18900
2252 };
2253 static const SvxMSDffTextRectangles mso_sptFoldedCornerTextRect[] =
2254 {
2255     { { 0, 0 }, { 21600, 11 MSO_I } }
2256 };
2257 static const SvxMSDffHandle mso_sptFoldedCornerHandle[] =
2258 {
2259     {   MSDFF_HANDLE_FLAGS_RANGE,
2260         0x100, 1, 10800, 10800, 10800, 21600, 0x80000000, 0x7fffffff }
2261 };
2262 static const mso_CustomShape msoFoldedCorner =
2263 {
2264     (SvxMSDffVertPair*)mso_sptFoldedCornerVert, sizeof( mso_sptFoldedCornerVert ) / sizeof( SvxMSDffVertPair ),
2265     (sal_uInt16*)mso_sptFoldedCornerSegm, sizeof( mso_sptFoldedCornerSegm ) >> 1,
2266     (SvxMSDffCalculationData*)mso_sptFoldedCornerCalc, sizeof( mso_sptFoldedCornerCalc ) / sizeof( SvxMSDffCalculationData ),
2267     (sal_Int32*)mso_sptFoldedCornerDefault,
2268     (SvxMSDffTextRectangles*)mso_sptFoldedCornerTextRect, sizeof( mso_sptFoldedCornerTextRect ) / sizeof( SvxMSDffTextRectangles ),
2269     21600, 21600,
2270     0x80000000, 0x80000000,
2271     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
2272     (SvxMSDffHandle*)mso_sptFoldedCornerHandle, sizeof( mso_sptFoldedCornerHandle ) / sizeof( SvxMSDffHandle )
2273 };
2274 
2275 static const SvxMSDffVertPair mso_sptActionButtonBlankVert[] =
2276 {
2277     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2278     { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2279     { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2280     { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2281     { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2282 };
2283 static const sal_uInt16 mso_sptActionButtonBlankSegm[] =
2284 {
2285     0x4000, 0x0003, 0x6001, 0x8000,
2286     0x4000, 0x0003, 0x6001, 0x8000,
2287     0x4000, 0x0003, 0x6001, 0x8000,
2288     0x4000, 0x0003, 0x6001, 0x8000,
2289     0x4000, 0x0003, 0x6001, 0x8000
2290 };
2291 static const SvxMSDffCalculationData mso_sptActionButtonBlankCalc[] =
2292 {
2293     { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2294     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2295     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2296 };
2297 static const SvxMSDffTextRectangles mso_sptActionButtonBlankTextRect[] =
2298 {
2299     { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2300 };
2301 static const SvxMSDffHandle mso_sptButtonHandle[] =
2302 {
2303     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2304         0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
2305 };
2306 static const mso_CustomShape msoActionButtonBlank =
2307 {
2308     (SvxMSDffVertPair*)mso_sptActionButtonBlankVert, sizeof( mso_sptActionButtonBlankVert ) / sizeof( SvxMSDffVertPair ),
2309     (sal_uInt16*)mso_sptActionButtonBlankSegm, sizeof( mso_sptActionButtonBlankSegm ) >> 1,
2310     (SvxMSDffCalculationData*)mso_sptActionButtonBlankCalc, sizeof( mso_sptActionButtonBlankCalc ) / sizeof( SvxMSDffCalculationData ),
2311     (sal_Int32*)mso_sptDefault1400,
2312     (SvxMSDffTextRectangles*)mso_sptActionButtonBlankTextRect, sizeof( mso_sptActionButtonBlankTextRect ) / sizeof( SvxMSDffTextRectangles ),
2313     21600, 21600,
2314     10800, 10800,
2315     NULL, 0,
2316     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2317 };
2318 
2319 static const SvxMSDffTextRectangles mso_sptActionButtonTextRect[] =
2320 {
2321     { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
2322 };
2323 static const SvxMSDffVertPair mso_sptActionButtonHomeVert[] =
2324 {
2325     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2326     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2327     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2328     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2329     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2330 
2331     { 7 MSO_I, 0xa MSO_I }, { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },
2332     { 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2333     { 0x1c MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1e MSO_I, 8 MSO_I },
2334 
2335     { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },{ 0x12 MSO_I, 0x14 MSO_I },
2336 
2337     { 0x20 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x1a MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2338     { 0x18 MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x20 MSO_I, 0x1a MSO_I }
2339 
2340 };
2341 static const sal_uInt16 mso_sptActionButtonHomeSegm[] =
2342 {
2343     0x4000, 0x0003, 0x6001, 0x8000,
2344     0x4000, 0x0003, 0x6001, 0x8000,
2345     0x4000, 0x0003, 0x6001, 0x8000,
2346     0x4000, 0x0003, 0x6001, 0x8000,
2347     0x4000, 0x0003, 0x6001, 0x8000,
2348     0x4000, 0x000a, 0x6001, 0x8000,
2349     0x4000, 0x0003, 0x6001, 0x8000,
2350     0x4000, 0x0007, 0x6001, 0x8000
2351 };
2352 static const SvxMSDffCalculationData mso_sptActionButtonHomeCalc[] =    // adj value 0 - 5400
2353 {
2354     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2355     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2356     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2357     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2358     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2359     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2360     { 0x2001, { 0x0405, 1, 10800 } },                           // scaling   6
2361     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2362     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2363 
2364     { 0x4001, { -8000, 0x0406, 1 } },   // 9
2365     { 0x6000, { 0x0409, 0x0408, 0 } },  // a
2366     { 0x4001, { 2960, 0x0406, 1 } },    // b
2367     { 0x6000, { 0x040b, 0x0407, 0 } },  // c
2368     { 0x4001, { -5000, 0x0406, 1 } },   // d
2369     { 0x6000, { 0x040d, 0x0408, 0 } },  // e
2370     { 0x4001, { -7000, 0x0406, 1 } },   // f
2371     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2372     { 0x4001, { 5000, 0x0406, 1 } },    // 11
2373     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2374     { 0x4001, { -2960, 0x0406, 1 } },   // 13
2375     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2376     { 0x4001, { 8000, 0x0406, 1 } },    // 15
2377     { 0x6000, { 0x0415,0x0407, 0 } },   // 16
2378     { 0x4001, { 6100, 0x0406, 1 } },    // 17
2379     { 0x6000, { 0x0417,0x0407, 0 } },   // 18
2380     { 0x4001, { 8260, 0x0406, 1 } },    // 19
2381     { 0x6000, { 0x0419, 0x0408, 0 } },  // 1a
2382     { 0x4001, { -6100, 0x0406, 1 } },   // 1b
2383     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
2384     { 0x4001, { -8000, 0x0406, 1 } },   // 1d
2385     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2386     { 0x4001, { -1060, 0x0406, 1 } },   // 1f
2387     { 0x6000, { 0x041f, 0x0407, 0 } },  // 20
2388     { 0x4001, { 1060, 0x0406, 1 } },    // 21
2389     { 0x6000, { 0x0421, 0x0407, 0 } },  // 22
2390     { 0x4001, { 4020, 0x0406, 1 } },    // 23
2391     { 0x6000, { 0x0423, 0x0408, 0 } }   // 24
2392 
2393 };
2394 static const mso_CustomShape msoActionButtonHome =
2395 {
2396     (SvxMSDffVertPair*)mso_sptActionButtonHomeVert, sizeof( mso_sptActionButtonHomeVert ) / sizeof( SvxMSDffVertPair ),
2397     (sal_uInt16*)mso_sptActionButtonHomeSegm, sizeof( mso_sptActionButtonHomeSegm ) >> 1,
2398     (SvxMSDffCalculationData*)mso_sptActionButtonHomeCalc, sizeof( mso_sptActionButtonHomeCalc ) / sizeof( SvxMSDffCalculationData ),
2399     (sal_Int32*)mso_sptDefault1400,
2400     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2401     21600, 21600,
2402     10800, 10800,
2403     NULL, 0,
2404     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2405 };
2406 
2407 static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
2408 {
2409     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2410     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2411     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2412     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2413     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
2414     { 7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0xc MSO_I },
2415     { 0x12 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x16 MSO_I },                             // pp
2416     { 0x12 MSO_I, 0x18 MSO_I }, { 0x1a MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I },       // ccp
2417     { 0x1e MSO_I, 8 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x20 MSO_I, 0x24 MSO_I },    // ccp
2418     { 0x20 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },    // ccp
2419     { 0x2c MSO_I, 0x2a MSO_I }, { 0x2e MSO_I, 0x26 MSO_I }, { 0x2e MSO_I, 0x24 MSO_I }, // ccp
2420     { 0x30 MSO_I, 0x24 MSO_I }, { 0x30 MSO_I, 0x32 MSO_I }, { 0x34 MSO_I, 0x36 MSO_I }, // ccp
2421     { 7 MSO_I, 0x36 MSO_I },                                                            // p
2422     { 0x12 MSO_I, 0x36 MSO_I }, { 0x1c MSO_I, 0x32 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I }, // ccp
2423     { 0x1c MSO_I, 0x38 MSO_I }, { 0x3a MSO_I, 0x3c MSO_I }, { 0x12 MSO_I, 0x3c MSO_I }, // ccp
2424     { 7 MSO_I, 0x3c MSO_I }, { 0x34 MSO_I, 8 MSO_I }, { 0x34 MSO_I, 0x16 MSO_I },       // ccp
2425     { 0x34 MSO_I, 0x14 MSO_I }
2426 };
2427 static const sal_uInt16 mso_sptActionButtonHelpSegm[] =
2428 {
2429     0x4000, 0x0003, 0x6001, 0x8000,
2430     0x4000, 0x0003, 0x6001, 0x8000,
2431     0x4000, 0x0003, 0x6001, 0x8000,
2432     0x4000, 0x0003, 0x6001, 0x8000,
2433     0x4000, 0x0003, 0x6001, 0x8000,
2434     0x4000, 0xa704, 0x6000, 0x8000,
2435     0x4000, 0x0001, 0x2004, 0x0001, 0x2004, 0x0001, 0x6001, 0x8000
2436 };
2437 static const SvxMSDffCalculationData mso_sptActionButtonHelpCalc[] =    // adj value 0 - 5400
2438 {
2439     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2440     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2441     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2442     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2443     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2444     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2445     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2446     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2447     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2448 
2449     { 0x4001, { -1690, 0x0406, 1 } },   // 9
2450     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2451     { 0x4001, { 4600, 0x0406, 1 } },    // b
2452     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2453     { 0x4001, { 1690, 0x0406, 1 } },    // d
2454     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2455     { 0x4001, { 7980, 0x0406, 1 } },    // f
2456     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2457     { 0x4001, { 1270, 0x0406, 1 } },    // 11
2458     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2459     { 0x4001, { 4000, 0x0406, 1 } },    // 13
2460     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2461     { 0x4001, { 1750, 0x0406, 1 } },    // 15
2462     { 0x6000, { 0x0415, 0x0408, 0 } },  // 16
2463     { 0x4001, { 800, 0x0406, 1 } },     // 17
2464     { 0x6000, { 0x0417, 0x0408, 0 } },  // 18
2465     { 0x4001, { 1650, 0x0406, 1 } },    // 19
2466     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2467     { 0x4001, { 2340, 0x0406, 1 } },    // 1b
2468     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
2469     { 0x4001, { 3640, 0x0406, 1 } },    // 1d
2470     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2471     { 0x4001, { 4670, 0x0406, 1 } },    // 1f
2472     { 0x6000, { 0x041f, 0x0407, 0 } },  // 20
2473     { 0x4001, { -1570, 0x0406, 1 } },   // 21
2474     { 0x6000, { 0x0421, 0x0408, 0 } },  // 22
2475     { 0x4001, { -3390, 0x0406, 1 } },   // 23
2476     { 0x6000, { 0x0423, 0x0408, 0 } },  // 24
2477     { 0x4001, { -6050, 0x0406, 1 } },   // 25
2478     { 0x6000, { 0x0425, 0x0408, 0 } },  // 26
2479     { 0x4001, { 2540, 0x0406, 1 } },    // 27
2480     { 0x6000, { 0x0427, 0x0407, 0 } },  // 28
2481     { 0x4001, { -8050, 0x0406, 1 } },   // 29
2482     { 0x6000, { 0x0429, 0x0408, 0 } },  // 2a
2483     { 0x4001, { -2540, 0x0406, 1 } },   // 2b
2484     { 0x6000, { 0x042b, 0x0407, 0 } },  // 2c
2485     { 0x4001, { -4460, 0x0406, 1 } },   // 2d
2486     { 0x6000, { 0x042d, 0x0407, 0 } },  // 2e
2487     { 0x4001, { -2330, 0x0406, 1 } },   // 2f
2488     { 0x6000, { 0x042f, 0x0407, 0 } },  // 30
2489     { 0x4001, { -4700, 0x0406, 1 } },   // 31
2490     { 0x6000, { 0x0431, 0x0408, 0 } },  // 32
2491     { 0x4001, { -1270, 0x0406, 1 } },   // 33
2492     { 0x6000, { 0x0433, 0x0407, 0 } },  // 34
2493     { 0x4001, { -5720, 0x0406, 1 } },   // 35
2494     { 0x6000, { 0x0435, 0x0408, 0 } },  // 36
2495     { 0x4001, { -2540, 0x0406, 1 } },   // 37
2496     { 0x6000, { 0x0437, 0x0408, 0 } },  // 38
2497     { 0x4001, { 1800, 0x0406, 1 } },    // 39
2498     { 0x6000, { 0x0439, 0x0407, 0 } },  // 3a
2499     { 0x4001, { -1700, 0x0406, 1 } },   // 3b
2500     { 0x6000, { 0x043b, 0x0408, 0 } },  // 3c
2501     { 0x4001, { 6290, 0x0406, 1 } },    // 3d
2502     { 0x6000, { 0x043d, 0x0408, 0 } }   // 3e
2503 };
2504 static const mso_CustomShape msoActionButtonHelp =
2505 {
2506     (SvxMSDffVertPair*)mso_sptActionButtonHelpVert, sizeof( mso_sptActionButtonHelpVert ) / sizeof( SvxMSDffVertPair ),
2507     (sal_uInt16*)mso_sptActionButtonHelpSegm, sizeof( mso_sptActionButtonHelpSegm ) >> 1,
2508     (SvxMSDffCalculationData*)mso_sptActionButtonHelpCalc, sizeof( mso_sptActionButtonHelpCalc ) / sizeof( SvxMSDffCalculationData ),
2509     (sal_Int32*)mso_sptDefault1400,
2510     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2511     21600, 21600,
2512     10800, 10800,
2513     NULL, 0,
2514     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2515 };
2516 
2517 static const SvxMSDffVertPair mso_sptActionButtonInformationVert[] =
2518 {
2519     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2520     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2521     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2522     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2523     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2524     { 0x7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x8 MSO_I }, { 0x7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0x7 MSO_I, 0xc MSO_I },
2525     { 0x7 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x14 MSO_I },
2526     { 0x1a MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0x20 MSO_I },
2527     { 0x22 MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x20 MSO_I }, { 0x26 MSO_I, 0x20 MSO_I },
2528     { 0x26 MSO_I, 0x28 MSO_I }, { 0x1a MSO_I, 0x28 MSO_I }
2529 };
2530 static const sal_uInt16 mso_sptActionButtonInformationSegm[] =
2531 {
2532     0x4000, 0x0003, 0x6001, 0x8000,
2533     0x4000, 0x0003, 0x6001, 0x8000,
2534     0x4000, 0x0003, 0x6001, 0x8000,
2535     0x4000, 0x0003, 0x6001, 0x8000,
2536     0x4000, 0x0003, 0x6001, 0x8000,
2537     0x4000, 0xa704, 0x6000, 0x8000,
2538     0x4000, 0xa704, 0x6000, 0x8000,
2539     0x4000, 0x0009, 0x6001, 0x8000
2540 };
2541 static const SvxMSDffCalculationData mso_sptActionButtonInformationCalc[] = // adj value 0 - 5400
2542 {
2543     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2544     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2545     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2546     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2547     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2548     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2549     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2550     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2551     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2552 
2553     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2554     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2555     { 0x4001, { -8050, 0x0406, 1 } },   // b
2556     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2557     { 0x4001, { 8050, 0x0406, 1 } },    // d
2558     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2559     { 0x4001, { 8050, 0x0406, 1 } },    // f
2560     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2561 
2562     { 0x4001, { -2060, 0x0406, 1 } },   // 11
2563     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2564     { 0x4001, { -7620, 0x0406, 1 } },   // 13
2565     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2566     { 0x4001, { 2060, 0x0406, 1 } },    // 15
2567     { 0x6000, { 0x0415, 0x0407, 0 } },  // 16
2568     { 0x4001, { -3500, 0x0406, 1 } },   // 17
2569     { 0x6000, { 0x0417, 0x0408, 0 } },  // 18
2570 
2571     { 0x4001, { -2960, 0x0406, 1 } },   // 19
2572     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2573     { 0x4001, { -2960, 0x0406, 1 } },   // 1b
2574     { 0x6000, { 0x041b, 0x0408, 0 } },  // 1c
2575     { 0x4001, { 1480, 0x0406, 1 } },    // 1d
2576     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2577     { 0x4001, { 5080, 0x0406, 1 } },    // 1f
2578     { 0x6000, { 0x041f, 0x0408, 0 } },  // 20
2579     { 0x4001, { 2960, 0x0406, 1 } },    // 21
2580     { 0x6000, { 0x0421, 0x0407, 0 } },  // 22
2581     { 0x4001, { 6140, 0x0406, 1 } },    // 23
2582     { 0x6000, { 0x0423, 0x0408, 0 } },  // 24
2583     { 0x4001, { -1480, 0x0406, 1 } },   // 25
2584     { 0x6000, { 0x0425, 0x0407, 0 } },  // 26
2585     { 0x4001, { -1920, 0x0406, 1 } },   // 27
2586     { 0x6000, { 0x0427, 0x0408, 0 } },  // 28
2587 
2588     { 0x4001, { -5560, 0x0406, 1 } },   // 29
2589     { 0x6000, { 0x0429, 0x0408, 0 } },  // 2a
2590 
2591 };
2592 static const mso_CustomShape msoActionButtonInformation =
2593 {
2594     (SvxMSDffVertPair*)mso_sptActionButtonInformationVert, sizeof( mso_sptActionButtonInformationVert ) / sizeof( SvxMSDffVertPair ),
2595     (sal_uInt16*)mso_sptActionButtonInformationSegm, sizeof( mso_sptActionButtonInformationSegm ) >> 1,
2596     (SvxMSDffCalculationData*)mso_sptActionButtonInformationCalc, sizeof( mso_sptActionButtonInformationCalc ) / sizeof( SvxMSDffCalculationData ),
2597     (sal_Int32*)mso_sptDefault1400,
2598     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2599     21600, 21600,
2600     10800, 10800,
2601     NULL, 0,
2602     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2603 };
2604 
2605 static const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] =
2606 {
2607     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2608     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2609     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2610     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I },
2611     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2612 
2613     { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }
2614 };
2615 static const sal_uInt16 mso_sptActionButtonForwardBackSegm[] =
2616 {
2617     0x4000, 0x0003, 0x6001, 0x8000,
2618     0x4000, 0x0003, 0x6001, 0x8000,
2619     0x4000, 0x0003, 0x6001, 0x8000,
2620     0x4000, 0x0003, 0x6001, 0x8000,
2621     0x4000, 0x0003, 0x6001, 0x8000,
2622     0x4000, 0x0002, 0x6001, 0x8000
2623 };
2624 static const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] = // adj value 0 - 5400
2625 {
2626     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2627     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2628     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2629     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2630     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2631     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2632     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2633     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2634     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2635 
2636     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2637     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2638     { 0x4001, { -8050, 0x0406, 1 } },   // b
2639     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2640     { 0x4001, { 8050, 0x0406, 1 } },    // d
2641     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2642     { 0x4001, { 8050, 0x0406, 1 } },    // f
2643     { 0x6000, { 0x040f, 0x0408, 0 } }   // 10
2644 };
2645 static const mso_CustomShape msoActionButtonBackPrevious =
2646 {
2647     (SvxMSDffVertPair*)mso_sptActionButtonBackPreviousVert, sizeof( mso_sptActionButtonBackPreviousVert ) / sizeof( SvxMSDffVertPair ),
2648     (sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2649     (SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2650     (sal_Int32*)mso_sptDefault1400,
2651     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2652     21600, 21600,
2653     10800, 10800,
2654     NULL, 0,
2655     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2656 };
2657 
2658 static const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] =
2659 {
2660     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2661     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2662     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2663     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2664     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2665 
2666     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }
2667 };
2668 static const mso_CustomShape msoActionButtonForwardNext =
2669 {
2670     (SvxMSDffVertPair*)mso_sptActionButtonForwardNextVert, sizeof( mso_sptActionButtonForwardNextVert ) / sizeof( SvxMSDffVertPair ),
2671     (sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2672     (SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2673     (sal_Int32*)mso_sptDefault1400,
2674     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2675     21600, 21600,
2676     10800, 10800,
2677     NULL, 0,
2678     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2679 };
2680 
2681 static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
2682 {
2683     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2684     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2685     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2686     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2687     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2688 
2689     { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2690     { 0x14 MSO_I, 0xc MSO_I }, { 0x14 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }
2691 };
2692 static const sal_uInt16 mso_sptActionButtonBeginningEndSegm[] =
2693 {
2694     0x4000, 0x0003, 0x6001, 0x8000,
2695     0x4000, 0x0003, 0x6001, 0x8000,
2696     0x4000, 0x0003, 0x6001, 0x8000,
2697     0x4000, 0x0003, 0x6001, 0x8000,
2698     0x4000, 0x0003, 0x6001, 0x8000,
2699 
2700     0x4000, 0x0002, 0x6001, 0x8000,
2701     0x4000, 0x0003, 0x6001, 0x8000
2702 };
2703 static const SvxMSDffCalculationData mso_sptActionButtonBeginningEndCalc[] =    // adj value 0 - 5400
2704 {
2705     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2706     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2707     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2708     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2709     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2710     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2711     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2712     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2713     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2714 
2715     { 0x4001, { -4020, 0x0406, 1 } },   // 9
2716     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2717     { 0x4001, { -8050, 0x0406, 1 } },   // b
2718     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2719     { 0x4001, { 8050, 0x0406, 1 } },    // d
2720     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2721     { 0x4001, { 8050, 0x0406, 1 } },    // f
2722     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2723 
2724     { 0x4001, { -8050, 0x0406, 1 } },   // 11
2725     { 0x6000, { 0x0411, 0x0407, 0 } },  // 12
2726     { 0x4001, { -6140, 0x0406, 1 } },   // 13
2727     { 0x6000, { 0x0413, 0x0407, 0 } },  // 14
2728 
2729 
2730     { 0x4001, { 4020, 0x0406, 1 } },    // 15
2731     { 0x6000, { 0x0415, 0x0407, 0 } },  // 16
2732     { 0x4001, { 6140, 0x0406, 1 } },    // 17
2733     { 0x6000, { 0x0417, 0x0407, 0 } }   // 18
2734 };
2735 static const mso_CustomShape msoActionButtonBeginning =
2736 {
2737     (SvxMSDffVertPair*)mso_sptActionButtonBeginningVert, sizeof( mso_sptActionButtonBeginningVert ) / sizeof( SvxMSDffVertPair ),
2738     (sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2739     (SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2740     (sal_Int32*)mso_sptDefault1400,
2741     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2742     21600, 21600,
2743     10800, 10800,
2744     NULL, 0,
2745     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2746 };
2747 
2748 static const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
2749 {
2750     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2751     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2752     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2753     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2754     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2755 
2756     { 0x16 MSO_I, 8 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2757 
2758     { 0x18 MSO_I, 0xc MSO_I }, { 0x18 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0xc MSO_I }
2759 };
2760 static const mso_CustomShape msoActionButtonEnd =
2761 {
2762     (SvxMSDffVertPair*)mso_sptActionButtonEndVert, sizeof( mso_sptActionButtonEndVert ) / sizeof( SvxMSDffVertPair ),
2763     (sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2764     (SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2765     (sal_Int32*)mso_sptDefault1400,
2766     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2767     21600, 21600,
2768     10800, 10800,
2769     NULL, 0,
2770     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2771 };
2772 
2773 static const SvxMSDffVertPair mso_sptActionButtonReturnVert[] =
2774 {
2775     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2776     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2777     { 21600, 0 }, { 21600,  21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2778     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2779     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2780 
2781     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I },                          // ppp
2782     { 0xe MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 0x16 MSO_I },                      // ccp
2783     { 7 MSO_I, 0x16 MSO_I },                                                                                // p
2784     { 0x1a MSO_I, 0x16 MSO_I }, { 0x1c MSO_I, 0x12 MSO_I }, { 0x1c MSO_I, 0x10 MSO_I },                     // ccp
2785     { 0x1c MSO_I, 0xc MSO_I }, { 7 MSO_I, 0xc MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0xc MSO_I },// pppp
2786     { 0x24 MSO_I, 0xc MSO_I }, { 0x24 MSO_I, 0x10 MSO_I },                                                  // pp
2787     { 0x24 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },                        // ccp
2788     { 0x18 MSO_I, 0x2a MSO_I },                                                                             // p
2789     { 0x2c MSO_I, 0x2a MSO_I }, { 0xa MSO_I, 0x26 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }                        // ccp
2790 };
2791 static const sal_uInt16 mso_sptActionButtonReturnSegm[] =
2792 {
2793     0x4000, 0x0003, 0x6001, 0x8000,
2794     0x4000, 0x0003, 0x6001, 0x8000,
2795     0x4000, 0x0003, 0x6001, 0x8000,
2796     0x4000, 0x0003, 0x6001, 0x8000,
2797     0x4000, 0x0003, 0x6001, 0x8000,
2798     0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006,0x2001, 0x0001, 0x2001, 0x6001, 0x8000
2799 };
2800 static const SvxMSDffCalculationData mso_sptActionButtonReturnCalc[] =  // adj value 0 - 5400
2801 {
2802     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2803     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2804     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2805     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2806     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2807     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2808     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2809     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2810     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2811 
2812     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2813     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2814     { 0x4001, { -3800, 0x0406, 1 } },   // b
2815     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2816     { 0x4001, { -4020, 0x0406, 1 } },   // d
2817     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2818     { 0x4001, { 2330, 0x0406, 1 } },    // f
2819     { 0x6000, { 0x040f, 0x0408, 0 } },  // 10
2820     { 0x4001, { 3390, 0x0406, 1 } },    // 11
2821     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
2822     { 0x4001, { -3100, 0x0406, 1 } },   // 13
2823     { 0x6000, { 0x0413, 0x0407, 0 } },  // 14
2824     { 0x4001, { 4230, 0x0406, 1 } },    // 15
2825     { 0x6000, { 0x0415, 0x0408, 0 } },  // 16
2826     { 0x4001, { -1910, 0x0406, 1 } },   // 17
2827     { 0x6000, { 0x0417, 0x0407, 0 } },  // 18
2828     { 0x4001, { 1190, 0x0406, 1 } },    // 19
2829     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2830     { 0x4001, { 2110, 0x0406, 1 } },    // 1b
2831     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
2832     { 0x4001, { 4030, 0x0406, 1 } },    // 1d
2833     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
2834     { 0x4001, { -7830, 0x0406, 1 } },   // 1f
2835     { 0x6000, { 0x041f, 0x0408, 0 } },  // 20
2836     { 0x4001, { 8250, 0x0406, 1 } },    // 21
2837     { 0x6000, { 0x0421, 0x0407, 0 } },  // 22
2838     { 0x4001, { 6140, 0x0406, 1 } },    // 23
2839     { 0x6000, { 0x0423, 0x0407, 0 } },  // 24
2840     { 0x4001, { 5510, 0x0406, 1 } },    // 25
2841     { 0x6000, { 0x0425, 0x0408, 0 } },  // 26
2842     { 0x4001, { 3180, 0x0406, 1 } },    // 27
2843     { 0x6000, { 0x0427, 0x0407, 0 } },  // 28
2844     { 0x4001, { 8450, 0x0406, 1 } },    // 29
2845     { 0x6000, { 0x0429, 0x0408, 0 } },  // 2a
2846     { 0x4001, { -5090, 0x0406, 1 } },   // 2b
2847     { 0x6000, { 0x042b, 0x0407, 0 } }   // 2c
2848 };
2849 static const mso_CustomShape msoActionButtonReturn =
2850 {
2851     (SvxMSDffVertPair*)mso_sptActionButtonReturnVert, sizeof( mso_sptActionButtonReturnVert ) / sizeof( SvxMSDffVertPair ),
2852     (sal_uInt16*)mso_sptActionButtonReturnSegm, sizeof( mso_sptActionButtonReturnSegm ) >> 1,
2853     (SvxMSDffCalculationData*)mso_sptActionButtonReturnCalc, sizeof( mso_sptActionButtonReturnCalc ) / sizeof( SvxMSDffCalculationData ),
2854     (sal_Int32*)mso_sptDefault1400,
2855     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2856     21600, 21600,
2857     10800, 10800,
2858     NULL, 0,
2859     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2860 };
2861 
2862 static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
2863 {
2864     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2865     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2866     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2867     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2868     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2869 
2870     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2871     { 0xa MSO_I, 0x14 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0xe MSO_I, 0x12 MSO_I }
2872 };
2873 static const sal_uInt16 mso_sptActionButtonDocumentSegm[] =
2874 {
2875     0x4000, 0x0003, 0x6001, 0x8000,
2876     0x4000, 0x0003, 0x6001, 0x8000,
2877     0x4000, 0x0003, 0x6001, 0x8000,
2878     0x4000, 0x0003, 0x6001, 0x8000,
2879     0x4000, 0x0003, 0x6001, 0x8000,
2880 
2881     0x4000, 0x0004, 0x6001, 0x8000,
2882     0x4000, 0x0002, 0x6001, 0x8000
2883 };
2884 static const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] =    // adj value 0 - 5400
2885 {
2886     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2887     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2888     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2889     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2890     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2891     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2892     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2893     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2894     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2895 
2896     { 0x4001, { -6350, 0x0406, 1 } },   // 9
2897     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2898     { 0x4001, { -7830, 0x0406, 1 } },   // b
2899     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2900     { 0x4001, { 1690, 0x0406, 1 } },    // d
2901     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2902     { 0x4001, { 6350, 0x0406, 1 } },    // f
2903     { 0x6000, { 0x040f, 0x0407, 0 } },  // 10
2904     { 0x4001, { -3810, 0x0406, 1 } },   // 11
2905     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
2906     { 0x4001, { 7830, 0x0406, 1 } },    // 13
2907     { 0x6000, { 0x0413, 0x0408, 0 } }   // 14
2908 };
2909 static const mso_CustomShape msoActionButtonDocument =
2910 {
2911     (SvxMSDffVertPair*)mso_sptActionButtonDocumentVert, sizeof( mso_sptActionButtonDocumentVert ) / sizeof( SvxMSDffVertPair ),
2912     (sal_uInt16*)mso_sptActionButtonDocumentSegm, sizeof( mso_sptActionButtonDocumentSegm ) >> 1,
2913     (SvxMSDffCalculationData*)mso_sptActionButtonDocumentCalc, sizeof( mso_sptActionButtonDocumentCalc ) / sizeof( SvxMSDffCalculationData ),
2914     (sal_Int32*)mso_sptDefault1400,
2915     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2916     21600, 21600,
2917     10800, 10800,
2918     NULL, 0,
2919     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2920 };
2921 
2922 static const SvxMSDffVertPair mso_sptActionButtonSoundVert[] =
2923 {
2924     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2925     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2926     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2927     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2928     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2929 
2930     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2931     { 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x1a MSO_I, 8 MSO_I },
2932 
2933     { 0x18 MSO_I, 0xc MSO_I }, { 0x1a MSO_I, 0x1c MSO_I },
2934 
2935     { 0x18 MSO_I, 0x16 MSO_I }, { 0x1a MSO_I, 0x1e MSO_I }
2936 };
2937 static const sal_uInt16 mso_sptActionButtonSoundSegm[] =
2938 {
2939     0x4000, 0x0003, 0x6001, 0x8000,
2940     0x4000, 0x0003, 0x6001, 0x8000,
2941     0x4000, 0x0003, 0x6001, 0x8000,
2942     0x4000, 0x0003, 0x6001, 0x8000,
2943     0x4000, 0x0003, 0x6001, 0x8000,
2944 
2945     0x4000, 0x0005, 0x6001, 0x8000,
2946     0x4000, 0x0001, 0x8000,
2947     0x4000, 0x0001, 0x8000,
2948     0x4000, 0x0001, 0x8000
2949 };
2950 static const SvxMSDffCalculationData mso_sptActionButtonSoundCalc[] =   // adj value 0 - 5400
2951 {
2952     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2953     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2954     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2955     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2956     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2957     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2958     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
2959     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
2960     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
2961 
2962     { 0x4001, { -8050, 0x0406, 1 } },   // 9
2963     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
2964     { 0x4001, { -2750, 0x0406, 1 } },   // b
2965     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
2966     { 0x4001, { -2960, 0x0406, 1 } },   // d
2967     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
2968     { 0x4001, { 2120, 0x0406, 1 } },    // f
2969     { 0x6000, { 0x040f, 0x0407, 0 } },  // 10
2970     { 0x4001, { -8050, 0x0406, 1 } },   // 11
2971     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
2972     { 0x4001, { 8050, 0x0406, 1 } },    // 13
2973     { 0x6000, { 0x0413, 0x0408, 0 } },  // 14
2974     { 0x4001, { 2750, 0x0406, 1 } },    // 15
2975     { 0x6000, { 0x0415, 0x0408, 0 } },  // 16
2976     { 0x4001, { 4020, 0x0406, 1 } },    // 17
2977     { 0x6000, { 0x0417, 0x0407, 0 } },  // 18
2978     { 0x4001, { 8050, 0x0406, 1 } },    // 19
2979     { 0x6000, { 0x0419, 0x0407, 0 } },  // 1a
2980     { 0x4001, { -5930, 0x0406, 1 } },   // 1b
2981     { 0x6000, { 0x041b, 0x0408, 0 } },  // 1c
2982     { 0x4001, { 5930, 0x0406, 1 } },    // 1d
2983     { 0x6000, { 0x041d, 0x0408, 0 } }   // 1e
2984 };
2985 static const mso_CustomShape msoActionButtonSound =
2986 {
2987     (SvxMSDffVertPair*)mso_sptActionButtonSoundVert, sizeof( mso_sptActionButtonSoundVert ) / sizeof( SvxMSDffVertPair ),
2988     (sal_uInt16*)mso_sptActionButtonSoundSegm, sizeof( mso_sptActionButtonSoundSegm ) >> 1,
2989     (SvxMSDffCalculationData*)mso_sptActionButtonSoundCalc, sizeof( mso_sptActionButtonSoundCalc ) / sizeof( SvxMSDffCalculationData ),
2990     (sal_Int32*)mso_sptDefault1400,
2991     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2992     21600, 21600,
2993     10800, 10800,
2994     NULL, 0,
2995     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2996 };
2997 
2998 static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
2999 {
3000     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
3001     { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
3002     { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
3003     { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
3004     { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
3005 
3006     { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
3007     { 0x16 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x1e MSO_I, 0x18 MSO_I },
3008     { 0x20 MSO_I, 0x18 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x1e MSO_I, 0x22 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },
3009     { 0x16 MSO_I, 0x24 MSO_I }, { 0x16 MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x28 MSO_I },
3010     { 0x10 MSO_I, 0x28 MSO_I }, { 0xe MSO_I, 0x2c MSO_I }, { 0xa MSO_I, 0x2c MSO_I }
3011 };
3012 static const sal_uInt16 mso_sptActionButtonMovieSegm[] =
3013 {
3014     0x4000, 0x0003, 0x6001, 0x8000,
3015     0x4000, 0x0003, 0x6001, 0x8000,
3016     0x4000, 0x0003, 0x6001, 0x8000,
3017     0x4000, 0x0003, 0x6001, 0x8000,
3018     0x4000, 0x0003, 0x6001, 0x8000,
3019     0x4000, 0x0012, 0x6001, 0x8000
3020 };
3021 static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] =   // adj value 0 - 5400
3022 {
3023     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3024     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3025     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3026     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3027     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3028     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
3029     { 0x2001, { 0x0405, 1, 10800 } },           // scaling   6
3030     { 0x2001, { DFF_Prop_geoRight, 1, 2 } },    // lr center 7
3031     { 0x2001, { DFF_Prop_geoBottom, 1, 2 } },   // ul center 8
3032 
3033     { 0x4001, { -8050, 0x0406, 1 } },   // 9
3034     { 0x6000, { 0x0409, 0x0407, 0 } },  // a
3035     { 0x4001, { -4020, 0x0406, 1 } },   // b
3036     { 0x6000, { 0x040b, 0x0408, 0 } },  // c
3037     { 0x4001, { -7000, 0x0406, 1 } },   // d
3038     { 0x6000, { 0x040d, 0x0407, 0 } },  // e
3039     { 0x4001, { -6560, 0x0406, 1 } },   // f
3040     { 0x6000, { 0x040f, 0x0407, 0 } },  // 10
3041     { 0x4001, { -3600, 0x0406, 1 } },   // 11
3042     { 0x6000, { 0x0411, 0x0408, 0 } },  // 12
3043     { 0x4001, { 4020, 0x0406, 1 } },    // 13
3044     { 0x6000, { 0x0413, 0x0407, 0 } },  // 14
3045     { 0x4001, { 4660, 0x0406, 1 } },    // 15
3046     { 0x6000, { 0x0415, 0x0407, 0 } },  // 16
3047     { 0x4001, { -2960, 0x0406, 1 } },   // 17
3048     { 0x6000, { 0x0417, 0x0408, 0 } },  // 18
3049     { 0x4001, { -2330, 0x0406, 1 } },   // 19
3050     { 0x6000, { 0x0419, 0x0408, 0 } },  // 1a
3051     { 0x4001, { 6780, 0x0406, 1 } },    // 1b
3052     { 0x6000, { 0x041b, 0x0407, 0 } },  // 1c
3053     { 0x4001, { 7200, 0x0406, 1 } },    // 1d
3054     { 0x6000, { 0x041d, 0x0407, 0 } },  // 1e
3055     { 0x4001, { 8050, 0x0406, 1 } },    // 1f
3056     { 0x6000, { 0x041f, 0x0407, 0 } },  // 20
3057     { 0x4001, { 2960, 0x0406, 1 } },    // 21
3058     { 0x6000, { 0x0421, 0x0408, 0 } },  // 22
3059     { 0x4001, { 2330, 0x0406, 1 } },    // 23
3060     { 0x6000, { 0x0423, 0x0408, 0 } },  // 24
3061     { 0x4001, { 3800, 0x0406, 1 } },    // 25
3062     { 0x6000, { 0x0425, 0x0408, 0 } },  // 26
3063     { 0x4001, { -1060, 0x0406, 1 } },   // 27
3064     { 0x6000, { 0x0427, 0x0408, 0 } },  // 28
3065     { 0x4001, { -6350, 0x0406, 1 } },   // 29
3066     { 0x6000, { 0x0429, 0x0407, 0 } },  // 2a
3067     { 0x4001, { -640, 0x0406, 1 } },    // 2b
3068     { 0x6000, { 0x042b, 0x0408, 0 } }   // 2c
3069 };
3070 static const mso_CustomShape msoActionButtonMovie =
3071 {
3072     (SvxMSDffVertPair*)mso_sptActionButtonMovieVert, sizeof( mso_sptActionButtonMovieVert ) / sizeof( SvxMSDffVertPair ),
3073     (sal_uInt16*)mso_sptActionButtonMovieSegm, sizeof( mso_sptActionButtonMovieSegm ) >> 1,
3074     (SvxMSDffCalculationData*)mso_sptActionButtonMovieCalc, sizeof( mso_sptActionButtonMovieCalc ) / sizeof( SvxMSDffCalculationData ),
3075     (sal_Int32*)mso_sptDefault1400,
3076     (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3077     21600, 21600,
3078     10800, 10800,
3079     NULL, 0,
3080     (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
3081 };
3082 
3083 static const SvxMSDffVertPair mso_sptSmileyFaceVert[] = // adj value 15510 - 17520
3084 {
3085     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3086     { 7305, 7515 }, { 1165, 1165 }, { 0, 360 },
3087     { 14295, 7515 }, { 1165, 1165 }, { 0, 360 },
3088     { 4870, 1 MSO_I }, { 8680, 2 MSO_I }, { 12920, 2 MSO_I }, { 16730, 1 MSO_I }
3089 };
3090 static const sal_uInt16 mso_sptSmileyFaceSegm[] =
3091 {
3092     0xa203, 0x6000, 0x8000,
3093     0xa203, 0x6000, 0x8000,
3094     0xa203, 0x6000, 0x8000,
3095     0x4000, 0x2001, 0xaa00, 0x8000
3096 };
3097 static const SvxMSDffCalculationData mso_sptSmileyFaceCalc[] =
3098 {
3099     { 0x2000, { DFF_Prop_adjustValue, 0, 15510 } },
3100     { 0x8000, { 17520, 0, 0x400 } },
3101     { 0x4000, { 15510, 0x400, 0 } }
3102 };
3103 
3104 static const SvxMSDffTextRectangles mso_sptSmileyFaceTextRect[] =
3105 {
3106     { { 0, 1 MSO_I }, { 4 MSO_I, 21600 } }
3107 };
3108 static const sal_Int32 mso_sptSmileyFaceDefault[] =
3109 {
3110     1, 17520
3111 };
3112 static const SvxMSDffHandle mso_sptSmileyHandle[] =
3113 {
3114     {   MSDFF_HANDLE_FLAGS_RANGE,
3115         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 15510, 17520 }
3116 };
3117 static const mso_CustomShape msoSmileyFace =
3118 {
3119     (SvxMSDffVertPair*)mso_sptSmileyFaceVert, sizeof( mso_sptSmileyFaceVert ) / sizeof( SvxMSDffVertPair ),
3120     (sal_uInt16*)mso_sptSmileyFaceSegm, sizeof( mso_sptSmileyFaceSegm ) >> 1,
3121     (SvxMSDffCalculationData*)mso_sptSmileyFaceCalc, sizeof( mso_sptSmileyFaceCalc ) / sizeof( SvxMSDffCalculationData ),
3122     (sal_Int32*)mso_sptSmileyFaceDefault,
3123     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3124     21600, 21600,
3125     0x80000000, 0x80000000,
3126     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3127     (SvxMSDffHandle*)mso_sptSmileyHandle, sizeof( mso_sptSmileyHandle ) / sizeof( SvxMSDffHandle )      // handles
3128 };
3129 
3130 static const SvxMSDffVertPair mso_sptDonutVert[] =  // adj value 0 - 10800
3131 {
3132     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3133     { 10800, 10800 }, { 1 MSO_I, 1 MSO_I }, { 0, 360 }
3134 };
3135 static const sal_uInt16 mso_sptDonutSegm[] =
3136 {
3137     0xa203, 0x6000, 0xa203, 0x8000
3138 };
3139 static const SvxMSDffCalculationData mso_sptDonutCalc[] =
3140 {
3141     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3142     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3143 };
3144 static const SvxMSDffHandle mso_sptDonutHandle[] =
3145 {
3146     {   MSDFF_HANDLE_FLAGS_RANGE,
3147         0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3148 };
3149 static const mso_CustomShape msoDonut =
3150 {
3151     (SvxMSDffVertPair*)mso_sptDonutVert, sizeof( mso_sptDonutVert ) / sizeof( SvxMSDffVertPair ),
3152     (sal_uInt16*)mso_sptDonutSegm, sizeof( mso_sptDonutSegm ) >> 1,
3153     (SvxMSDffCalculationData*)mso_sptDonutCalc, sizeof( mso_sptDonutCalc ) / sizeof( SvxMSDffCalculationData ),
3154     (sal_Int32*)mso_sptDefault5400,
3155     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3156     21600, 21600,
3157     0x80000000, 0x80000000,
3158     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3159     (SvxMSDffHandle*)mso_sptDonutHandle, sizeof( mso_sptDonutHandle ) / sizeof( SvxMSDffHandle )        // handles
3160 };
3161 
3162 static const SvxMSDffVertPair mso_sptNoSmokingVert[] =  // adj value 0 - 7200
3163 {
3164     { 10800, 10800 },  { 10800, 10800 }, { 0, 360 },
3165     { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3166     { 9 MSO_I, 0xa MSO_I }, { 0xb MSO_I, 0xc MSO_I }, { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3167     { 0xd MSO_I, 0xe MSO_I }, { 0xf MSO_I, 0x10 MSO_I }
3168 };
3169 static const sal_uInt16 mso_sptNoSmokingSegm[] =
3170 {
3171     0xa203, 0x6000, 0xa404, 0x6000, 0xa404, 0x6000, 0x8000
3172 };
3173 static const SvxMSDffCalculationData mso_sptNoSmokingCalc[] =
3174 {
3175     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },         // 0
3176     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },     // 1
3177     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },     // 2
3178     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },         // 3
3179     { 0xa080, { 0x403, 0, 0x402 } },                    // 4
3180     { 0x8000, { 10800, 0, 0x403 } },                    // 5 x1
3181     { 0x4000, { 10800, 0x403, 0 } },                    // 6 x2
3182     { 0x8000, { 10800, 0, 0x404 } },                    // 7 y1
3183     { 0x4000, { 10800, 0x404, 0 } },                    // 8 y2
3184     { 0x6081, { 0x405, 0x407, 45 } },                   // 9
3185     { 0x6082, { 0x405, 0x407, 45 } },                   // a
3186     { 0x6081, { 0x405, 0x408, 45 } },                   // b
3187     { 0x6082, { 0x405, 0x408, 45 } },                   // c
3188     { 0x6081, { 0x406, 0x408, 45 } },                   // d
3189     { 0x6082, { 0x406, 0x408, 45 } },                   // e
3190     { 0x6081, { 0x406, 0x407, 45 } },                   // f
3191     { 0x6082, { 0x406, 0x407, 45 } }                    // 10
3192 };
3193 static const SvxMSDffHandle mso_sptNoSmokingHandle[] =
3194 {
3195     {   MSDFF_HANDLE_FLAGS_RANGE,
3196         0x100, 10800, 10800, 10800, 0, 7200, 0x80000000, 0x7fffffff }
3197 };
3198 static const mso_CustomShape msoNoSmoking =
3199 {
3200     (SvxMSDffVertPair*)mso_sptNoSmokingVert, sizeof( mso_sptNoSmokingVert ) / sizeof( SvxMSDffVertPair ),
3201     (sal_uInt16*)mso_sptNoSmokingSegm, sizeof( mso_sptNoSmokingSegm ) >> 1,
3202     (SvxMSDffCalculationData*)mso_sptNoSmokingCalc, sizeof( mso_sptNoSmokingCalc ) / sizeof( SvxMSDffCalculationData ),
3203     (sal_Int32*)mso_sptDefault2700,
3204     (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3205     21600, 21600,
3206     0x80000000, 0x80000000,
3207     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3208     (SvxMSDffHandle*)mso_sptNoSmokingHandle, sizeof( mso_sptNoSmokingHandle ) / sizeof( SvxMSDffHandle )        // handles
3209 };
3210 
3211 static const SvxMSDffVertPair mso_sptBlockArcVert[] =   // adj value 0 (degrees)
3212 {                                                       // adj value 1: 0 -> 10800;
3213     { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
3214     { 5 MSO_I, 5 MSO_I }, { 6 MSO_I, 6 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
3215 };
3216 static const sal_uInt16 mso_sptBlockArcSegm[] =
3217 {
3218     0xA404, 0xa504, 0x6001, 0x8000
3219 };
3220 static const sal_Int32 mso_sptBlockArcDefault[] =
3221 {
3222     2, 180, 5400
3223 };
3224 static const SvxMSDffCalculationData mso_sptBlockArcCalc[] =
3225 {
3226     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
3227     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
3228     { 0x2000, { 0x400, 10800, 0 } },
3229     { 0x2000, { 0x401, 10800, 0 } },
3230     { 0x8000, { 21600, 0, 0x402 } },
3231     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
3232     { 0x4000, { 10800, DFF_Prop_adjust2Value, 0 } },
3233     { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },
3234     { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } }
3235 };
3236 static const SvxMSDffHandle mso_sptBlockArcHandle[] =
3237 {
3238     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
3239         0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3240 };
3241 static const mso_CustomShape msoBlockArc =
3242 {
3243     (SvxMSDffVertPair*)mso_sptBlockArcVert, sizeof( mso_sptBlockArcVert ) / sizeof( SvxMSDffVertPair ),
3244     (sal_uInt16*)mso_sptBlockArcSegm, sizeof( mso_sptBlockArcSegm ) >> 1,
3245     (SvxMSDffCalculationData*)mso_sptBlockArcCalc, sizeof( mso_sptBlockArcCalc ) / sizeof( SvxMSDffCalculationData ),
3246     (sal_Int32*)mso_sptBlockArcDefault,
3247     NULL, 0,
3248     21600, 21600,
3249     0x80000000, 0x80000000,
3250     NULL, 0,
3251     (SvxMSDffHandle*)mso_sptBlockArcHandle, sizeof( mso_sptBlockArcHandle ) / sizeof( SvxMSDffHandle )      // handles
3252 };
3253 
3254 // aware : control points are always part of the bounding box
3255 static const SvxMSDffVertPair mso_sptHeartVert[] =
3256 {
3257     { 10800, 21599 }, { 321, 6886 }, { 70, 6036 },      // ppp
3258     { -9, 5766 }, { -1, 5474 }, { 2, 5192 },            // ccp
3259     { 6, 4918 }, { 43, 4641 }, { 101, 4370 },           // ccp
3260     { 159, 4103 }, { 245, 3837 }, { 353, 3582 },        // ccp
3261     { 460, 3326 }, { 591, 3077 }, { 741, 2839 },        // ccp
3262     { 892, 2598 }, { 1066, 2369 }, { 1253, 2155 },      // ccp
3263     { 1443, 1938 }, { 1651, 1732 }, { 1874, 1543 },     // ccp
3264     { 2097, 1351 }, { 2337, 1174 }, { 2587, 1014 },     // ccp
3265     { 2839, 854 }, { 3106, 708 }, { 3380, 584 },        // ccp
3266     { 3656, 459 }, { 3945, 350 }, { 4237, 264 },        // ccp
3267     { 4533, 176 }, { 4838, 108 }, { 5144, 66 },         // ccp
3268     { 5454, 22 }, { 5771, 1 }, { 6086, 3 },             // ccp
3269     { 6407, 7 }, { 6731, 35 }, { 7048, 89 },            // ccp
3270     { 7374, 144 }, { 7700, 226 }, { 8015, 335 },        // ccp
3271     { 8344, 447 }, { 8667, 590 }, { 8972, 756 },        // ccp
3272     { 9297, 932 }, { 9613, 1135 }, { 9907, 1363 },      // ccp
3273     { 10224, 1609 }, { 10504, 1900 }, { 10802, 2169 },  // ccp
3274     { 11697, 1363 },                                    // p
3275     { 11971, 1116 }, { 12304, 934 }, { 12630, 756 },    // ccp
3276     { 12935, 590 }, { 13528, 450 }, { 13589, 335 },     // ccp
3277     { 13901, 226 }, { 14227, 144 }, { 14556, 89 },      // ccp
3278     { 14872, 35 }, { 15195, 7 }, { 15517, 3 },          // ccp
3279     { 15830, 0 }, { 16147, 22 }, { 16458, 66 },         // ccp
3280     { 16764, 109 }, { 17068, 177 }, { 17365, 264 },     // ccp
3281     { 17658, 349 }, { 17946, 458 }, { 18222, 584 },     // ccp
3282     { 18496, 708 }, { 18762, 854 }, { 19015, 1014 },    // ccp
3283     { 19264, 1172 }, { 19504, 1349 }, { 19730, 1543 },  // ccp
3284     { 19950, 1731 }, { 20158, 1937 }, { 20350, 2155 },  // ccp
3285     { 20536, 2369 }, { 20710, 2598 }, { 20861, 2839 },  // ccp
3286     { 21010, 3074 }, { 21143, 3323 }, { 21251, 3582 },  // ccp
3287     { 21357, 3835 }, { 21443, 4099 }, { 21502, 4370 },  // ccp
3288     { 21561, 4639 }, { 21595, 4916 }, { 21600, 5192 },  // ccp
3289     { 21606, 5474 }, { 21584, 5760 }, { 21532, 6036 },  // ccp
3290     { 21478, 6326 }, { 21366, 6603 }, { 21282, 6887 },  // ccp
3291     { 10802, 21602 }                                    // p
3292 };
3293 static const sal_uInt16 mso_sptHeartSegm[] =
3294 {
3295     0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000
3296 };
3297 static const SvxMSDffTextRectangles mso_sptHeartTextRect[] =
3298 {
3299     { { 5080, 2540 }, { 16520, 13550 } }
3300 };
3301 static const SvxMSDffVertPair mso_sptHeartGluePoints[] =
3302 {
3303     { 10800, 2180 }, { 3090, 10800 }, { 10800, 21600 }, { 18490, 10800 }
3304 };
3305 static const mso_CustomShape msoHeart =
3306 {
3307     (SvxMSDffVertPair*)mso_sptHeartVert, sizeof( mso_sptHeartVert ) / sizeof( SvxMSDffVertPair ),
3308     (sal_uInt16*)mso_sptHeartSegm, sizeof( mso_sptHeartSegm ) >> 1,
3309     NULL, 0,
3310     NULL,
3311     (SvxMSDffTextRectangles*)mso_sptHeartTextRect, sizeof( mso_sptHeartTextRect ) / sizeof( SvxMSDffTextRectangles ),
3312     21615, 21602,
3313     0x80000000, 0x80000000,
3314     (SvxMSDffVertPair*)mso_sptHeartGluePoints, sizeof( mso_sptHeartGluePoints ) / sizeof( SvxMSDffVertPair ),
3315     NULL, 0     // handles
3316 };
3317 
3318 static const SvxMSDffVertPair mso_sptLightningBoldVert[] =
3319 {
3320     { 8458, 0 }, { 0, 3923 }, { 7564, 8416 }, { 4993, 9720 },
3321     { 12197, 13904 }, { 9987, 14934 }, { 21600, 21600 }, { 14768, 12911 },
3322     { 16558, 12016 }, { 11030, 6840 }, { 12831, 6120 }, { 8458, 0 }
3323 };
3324 static const SvxMSDffTextRectangles mso_sptLightningBoldTextRect[] =
3325 {
3326     { { 8680, 7410 }, { 13970, 14190 } }
3327 };
3328 static const SvxMSDffVertPair mso_sptLightningBoldGluePoints[] =
3329 {
3330     { 8458, 0 }, { 0, 3923 }, { 4993, 9720 }, { 9987, 14934 }, { 21600, 21600 },
3331     { 16558, 12016 }, { 12831, 6120 }
3332 };
3333 static const mso_CustomShape msoLightningBold =
3334 {
3335     (SvxMSDffVertPair*)mso_sptLightningBoldVert, sizeof( mso_sptLightningBoldVert ) / sizeof( SvxMSDffVertPair ),
3336     NULL, 0,
3337     NULL, 0,
3338     NULL,
3339     (SvxMSDffTextRectangles*)mso_sptLightningBoldTextRect, sizeof( mso_sptLightningBoldTextRect ) / sizeof( SvxMSDffTextRectangles ),
3340     21600, 21600,
3341     0x80000000, 0x80000000,
3342     (SvxMSDffVertPair*)mso_sptLightningBoldGluePoints, sizeof( mso_sptLightningBoldGluePoints ) / sizeof( SvxMSDffVertPair ),
3343     NULL, 0     // handles
3344 };
3345 
3346 static const SvxMSDffVertPair mso_sptSunVert[] =    // adj value 2700 -> 10125
3347 {
3348     { 0, 10800 },               { 4 MSO_I, 8 MSO_I },       { 4 MSO_I, 9 MSO_I },
3349     { 0x0a MSO_I, 0x0b MSO_I }, { 0x0c MSO_I, 0x0d MSO_I }, { 0x0e MSO_I, 0x0f MSO_I },
3350     { 0x10 MSO_I, 0x11 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0x14 MSO_I, 0x15 MSO_I },
3351     { 0x16 MSO_I, 0x17 MSO_I }, { 0x18 MSO_I, 0x19 MSO_I }, { 0x1a MSO_I, 0x1b MSO_I },
3352     { 0x1c MSO_I, 0x1d MSO_I }, { 0x1e MSO_I, 0x1f MSO_I }, { 0x20 MSO_I, 0x21 MSO_I },
3353     { 0x22 MSO_I, 0x23 MSO_I }, { 0x24 MSO_I, 0x25 MSO_I }, { 0x26 MSO_I, 0x27 MSO_I },
3354     { 0x28 MSO_I, 0x29 MSO_I }, { 0x2a MSO_I, 0x2b MSO_I }, { 0x2c MSO_I, 0x2d MSO_I },
3355     { 0x2e MSO_I, 0x2f MSO_I }, { 0x30 MSO_I, 0x31 MSO_I }, { 0x32 MSO_I, 0x33 MSO_I },
3356     { 10800, 10800 }, { 0x36 MSO_I, 0x36 MSO_I },   { 0, 360 }
3357 };
3358 static const sal_uInt16 mso_sptSunSegm[] =
3359 {
3360     0x4000, 0x0002, 0x6001, 0x8000,
3361     0x4000, 0x0002, 0x6001, 0x8000,
3362     0x4000, 0x0002, 0x6001, 0x8000,
3363     0x4000, 0x0002, 0x6001, 0x8000,
3364     0x4000, 0x0002, 0x6001, 0x8000,
3365     0x4000, 0x0002, 0x6001, 0x8000,
3366     0x4000, 0x0002, 0x6001, 0x8000,
3367     0x4000, 0x0002, 0x6001, 0x8000,
3368     0xa203, 0x6000, 0x8000
3369 };
3370 static const SvxMSDffCalculationData mso_sptSunCalc[] =
3371 {
3372     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3373     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3374     { 0x2000, { DFF_Prop_adjustValue, 0, 2700 } },
3375     { 0x2001, { 0x402, 5080, 7425 } },
3376     { 0x2000, { 0x403, 2540, 0 } },
3377     { 0x8000, { 10125, 0, DFF_Prop_adjustValue } },
3378     { 0x2001, { 0x405, 2120, 7425 } },
3379     { 0x2000, { 0x406, 210, 0 } },
3380     { 0x4000, { 10800, 0x407, 0 } },    // y1 (0x8)
3381     { 0x8000, { 10800, 0, 0x407 } },    // y2 (0x9)
3382     { 0x0081, { 0, 10800, 45 } },       // 0xa
3383     { 0x0082, { 0, 10800, 45 } },       // 0xb
3384     { 0x6081, { 0x404, 0x408, 45 } },   // 0xc
3385     { 0x6082, { 0x404, 0x408, 45 } },   // 0xd
3386     { 0x6081, { 0x404, 0x409, 45 } },   // 0xe
3387     { 0x6082, { 0x404, 0x409, 45 } },   // 0xf
3388     { 0x0081, { 0, 10800, 90 } },       // 0x10
3389     { 0x0082, { 0, 10800, 90 } },       // 0x11
3390     { 0x6081, { 0x404, 0x408, 90 } },   // 0x12
3391     { 0x6082, { 0x404, 0x408, 90 } },   // 0x13
3392     { 0x6081, { 0x404, 0x409, 90 } },   // 0x14
3393     { 0x6082, { 0x404, 0x409, 90 } },   // 0x15
3394     { 0x0081, { 0, 10800, 135 } },      // 0x16
3395     { 0x0082, { 0, 10800, 135 } },      // 0x17
3396     { 0x6081, { 0x404, 0x408, 135 } },  // 0x18
3397     { 0x6082, { 0x404, 0x408, 135 } },  // 0x19
3398     { 0x6081, { 0x404, 0x409, 135 } },  // 0x1a
3399     { 0x6082, { 0x404, 0x409, 135 } },  // 0x1b
3400     { 0x0081, { 0, 10800, 180 } },      // 0x1c
3401     { 0x0082, { 0, 10800, 180 } },      // 0x1d
3402     { 0x6081, { 0x404, 0x408, 180 } },  // 0x1e
3403     { 0x6082, { 0x404, 0x408, 180 } },  // 0x1f
3404     { 0x6081, { 0x404, 0x409, 180 } },  // 0x20
3405     { 0x6082, { 0x404, 0x409, 180 } },  // 0x21
3406     { 0x0081, { 0, 10800, 225 } },      // 0x22
3407     { 0x0082, { 0, 10800, 225 } },      // 0x23
3408     { 0x6081, { 0x404, 0x408, 225 } },  // 0x24
3409     { 0x6082, { 0x404, 0x408, 225 } },  // 0x25
3410     { 0x6081, { 0x404, 0x409, 225 } },  // 0x26
3411     { 0x6082, { 0x404, 0x409, 225 } },  // 0x27
3412     { 0x0081, { 0, 10800, 270 } },      // 0x28
3413     { 0x0082, { 0, 10800, 270 } },      // 0x29
3414     { 0x6081, { 0x404, 0x408, 270 } },  // 0x2a
3415     { 0x6082, { 0x404, 0x408, 270 } },  // 0x2b
3416     { 0x6081, { 0x404, 0x409, 270 } },  // 0x2c
3417     { 0x6082, { 0x404, 0x409, 270 } },  // 0x2d
3418     { 0x0081, { 0, 10800, 315 } },      // 0x2e
3419     { 0x0082, { 0, 10800, 315 } },      // 0x2f
3420     { 0x6081, { 0x404, 0x408, 315 } },  // 0x30
3421     { 0x6082, { 0x404, 0x408, 315 } },  // 0x31
3422     { 0x6081, { 0x404, 0x409, 315 } },  // 0x32
3423     { 0x6082, { 0x404, 0x409, 315 } },  // 0x33
3424     { 0x2081, { DFF_Prop_adjustValue, 10800, 45 } },    // 0x34 ( textbox )
3425     { 0x2081, { DFF_Prop_adjustValue, 10800, 225 } },   // 0x35
3426     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3427 };
3428 static const SvxMSDffTextRectangles mso_sptSunTextRect[] =
3429 {
3430     { { 0x34 MSO_I, 0x34 MSO_I }, { 0x35 MSO_I, 0x35 MSO_I } }
3431 };
3432 static const SvxMSDffHandle mso_sptSunHandle[] =
3433 {
3434     {   MSDFF_HANDLE_FLAGS_RANGE,
3435         0x100, 10800, 10800, 10800, 2700, 10125, 0x80000000, 0x7fffffff }
3436 };
3437 static const mso_CustomShape msoSun =
3438 {
3439     (SvxMSDffVertPair*)mso_sptSunVert, sizeof( mso_sptSunVert ) / sizeof( SvxMSDffVertPair ),
3440     (sal_uInt16*)mso_sptSunSegm, sizeof( mso_sptSunSegm ) >> 1,
3441     (SvxMSDffCalculationData*)mso_sptSunCalc, sizeof( mso_sptSunCalc ) / sizeof( SvxMSDffCalculationData ),
3442     (sal_Int32*)mso_sptDefault5400,
3443     (SvxMSDffTextRectangles*)mso_sptSunTextRect, sizeof( mso_sptSunTextRect ) / sizeof( SvxMSDffTextRectangles ),
3444     21600, 21600,
3445     0x80000000, 0x80000000,
3446     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3447     (SvxMSDffHandle*)mso_sptSunHandle, sizeof( mso_sptSunHandle ) / sizeof( SvxMSDffHandle )        // handles
3448 };
3449 
3450 static const SvxMSDffVertPair mso_sptMoonVert[] =   // adj value 0 -> 18900
3451 {
3452     { 21600, 0 },
3453     { 3 MSO_I, 4 MSO_I },   { 0 MSO_I, 5080 },      { 0 MSO_I, 10800 }, // ccp
3454     { 0 MSO_I, 16520 },     { 3 MSO_I, 5 MSO_I },   { 21600, 21600 },   // ccp
3455     { 9740, 21600 },        { 0, 16730 },           { 0, 10800 },       // ccp
3456     { 0, 4870 },            { 9740, 0 },            { 21600, 0  }       // ccp
3457 };
3458 static const sal_uInt16 mso_sptMoonSegm[] =
3459 {
3460     0x4000, 0x2004, 0x6000, 0x8000
3461 };
3462 static const SvxMSDffCalculationData mso_sptMoonCalc[] =
3463 {
3464     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3465     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3466     { 0x2001, { 0x401, 1, 2 } },
3467     { 0x6000, { 0x402, DFF_Prop_adjustValue, 0 } },
3468     { 0x2001, { DFF_Prop_adjustValue, 1794, 10000 } },
3469     { 0x8000, { 21600, 0, 0x0404 } },
3470     { 0x2001, { DFF_Prop_adjustValue, 400, 18900 } },
3471     { 0x8081, { 0, 10800, 0x406 } },
3472     { 0x8082, { 0, 10800, 0x406 } },
3473     { 0x6000, { 0x407, 0x407, 0 } },
3474     { 0x8000, { 21600, 0, 0x408 } }
3475 };
3476 static const SvxMSDffTextRectangles mso_sptMoonTextRect[] =
3477 {
3478     { { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 0xa MSO_I } }
3479 };
3480 static const SvxMSDffVertPair mso_sptMoonGluePoints[] =
3481 {
3482     { 21600, 0 }, { 0, 10800 }, { 21600, 21600 }, { 0 MSO_I, 10800 }
3483 };
3484 static const SvxMSDffHandle mso_sptMoonHandle[] =
3485 {
3486     {   MSDFF_HANDLE_FLAGS_RANGE,
3487         0x100, 10800, 10800, 10800, 0, 18900, 0x80000000, 0x7fffffff }
3488 };
3489 static const mso_CustomShape msoMoon =
3490 {
3491     (SvxMSDffVertPair*)mso_sptMoonVert, sizeof( mso_sptMoonVert ) / sizeof( SvxMSDffVertPair ),
3492     (sal_uInt16*)mso_sptMoonSegm, sizeof( mso_sptMoonSegm ) >> 1,
3493     (SvxMSDffCalculationData*)mso_sptMoonCalc, sizeof( mso_sptMoonCalc ) / sizeof( SvxMSDffCalculationData ),
3494     (sal_Int32*)mso_sptDefault10800,
3495     (SvxMSDffTextRectangles*)mso_sptMoonTextRect, sizeof( mso_sptMoonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3496     21600, 21600,
3497     0x80000000, 0x80000000,
3498     (SvxMSDffVertPair*)mso_sptMoonGluePoints, sizeof( mso_sptMoonGluePoints ) / sizeof( SvxMSDffVertPair ),
3499     (SvxMSDffHandle*)mso_sptMoonHandle, sizeof( mso_sptMoonHandle ) / sizeof( SvxMSDffHandle )      // handles
3500 };
3501 
3502 static const SvxMSDffVertPair mso_sptBracketPairVert[] =    // adj value 0 -> 10800
3503 {
3504     { 0 MSO_I, 0 },     { 0, 1 MSO_I },     // left top alignment
3505     { 0, 2 MSO_I },     { 0 MSO_I, 21600 }, // left  bottom "
3506     { 3 MSO_I, 21600 }, { 21600, 2 MSO_I }, // right bottom "
3507     { 21600, 1 MSO_I }, { 3 MSO_I, 0 }      // right top    "
3508 };
3509 static const sal_uInt16 mso_sptBracketPairSegm[] =
3510 {
3511     0x4000, 0xa701, 0x0001, 0xa801, 0x8000,
3512     0x4000, 0xa701, 0x0001, 0xa801, 0x8000
3513 };
3514 static const SvxMSDffCalculationData mso_sptBracketPairCalc[] =
3515 {
3516     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3517     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3518     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3519     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3520     { 0x2082, { DFF_Prop_adjustValue, 0, 45 } },
3521     { 0x2000, { 0x404, 0, 10800 } },
3522     { 0x8000, { 0, 0, DFF_Prop_adjustValue } },
3523     { 0xa000, { 0x406, 0, 0x405 } },
3524     { 0xa000, { DFF_Prop_geoLeft, 0, 0x407 } },
3525     { 0xa000, { DFF_Prop_geoTop, 0, 0x407 } },
3526     { 0x6000, { DFF_Prop_geoRight, 0x407, 0 } },
3527     { 0x6000, { DFF_Prop_geoBottom, 0x407, 0 } },
3528     { 0xa000, { DFF_Prop_geoLeft, 0, 0x405 } },
3529     { 0xa000, { DFF_Prop_geoTop, 0, 0x405 } },
3530     { 0x6000, { DFF_Prop_geoRight, 0x405, 0 } },
3531     { 0x6000, { DFF_Prop_geoBottom, 0x405, 0 } }
3532 };
3533 static const SvxMSDffTextRectangles mso_sptBracketPairTextRect[] =
3534 {
3535     { { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 0xb MSO_I } }
3536 };
3537 static const SvxMSDffHandle mso_sptBracketPairHandle[] =
3538 {
3539     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3540         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3541 };
3542 static const mso_CustomShape msoBracketPair =
3543 {
3544     (SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3545     (sal_uInt16*)mso_sptBracketPairSegm, sizeof( mso_sptBracketPairSegm ) >> 1,
3546     (SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3547     (sal_Int32*)mso_sptDefault3700,
3548     (SvxMSDffTextRectangles*)mso_sptBracketPairTextRect, sizeof( mso_sptBracketPairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3549     21600, 21600,
3550     10800, 0x80000000,
3551     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3552     (SvxMSDffHandle*)mso_sptBracketPairHandle, sizeof( mso_sptBracketPairHandle ) / sizeof( SvxMSDffHandle )        // handles
3553 };
3554 
3555 static const sal_uInt16 mso_sptPlaqueSegm[] =
3556 {
3557     0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
3558 };
3559 static const SvxMSDffTextRectangles mso_sptPlaqueTextRect[] =
3560 {
3561     { { 0xc MSO_I, 0xd MSO_I }, { 0xe MSO_I, 0xf MSO_I } }
3562 };
3563 static const SvxMSDffHandle mso_sptPlaqueHandle[] =
3564 {
3565     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3566         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3567 };
3568 static const mso_CustomShape msoPlaque =
3569 {
3570     (SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3571     (sal_uInt16*)mso_sptPlaqueSegm, sizeof( mso_sptPlaqueSegm ) >> 1,
3572     (SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3573     (sal_Int32*)mso_sptDefault3600,
3574     (SvxMSDffTextRectangles*)mso_sptPlaqueTextRect, sizeof( mso_sptPlaqueTextRect ) / sizeof( SvxMSDffTextRectangles ),
3575     21600, 21600,
3576     10800, 10800,
3577     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3578     (SvxMSDffHandle*)mso_sptPlaqueHandle, sizeof( mso_sptPlaqueHandle ) / sizeof( SvxMSDffHandle )      // handles
3579 };
3580 
3581 static const SvxMSDffVertPair mso_sptBracePairVert[] =  // adj value 0 -> 5400
3582 {
3583     { 4 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 },           // left bracket
3584     { 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 4 MSO_I, 21600 },
3585     { 8 MSO_I, 21600 }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 },   // right bracket
3586     { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 }
3587 };
3588 static const sal_uInt16 mso_sptBracePairSegm[] =
3589 {
3590     0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000,
3591     0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000
3592 };
3593 static const SvxMSDffCalculationData mso_sptBracePairCalc[] =
3594 {
3595     { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3596     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3597     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3598     { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3599     { 0x2001, { 0x400, 2, 1 } },                                    //  4
3600     { 0x2001, { DFF_Prop_adjustValue, 2, 1 } },                     //  5
3601     { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },                 //  6
3602     { 0x8000, { 21600, 0, 0x406 } },                                //  7
3603     { 0xa000, { DFF_Prop_geoRight, 0, 0x405 } },                    //  8
3604     { 0x2001, { DFF_Prop_adjustValue, 1, 3 } },                     //  9
3605     { 0x6000, { 0x409, DFF_Prop_adjustValue, 0 } },                 // xa
3606     { 0x6000, { DFF_Prop_geoLeft, 0x40a, 0 } },                     // xb
3607     { 0x6000, { DFF_Prop_geoTop, 0x409, 0 } },                      // xc
3608     { 0xa000, { DFF_Prop_geoRight, 0, 0x40a } },                    // xd
3609     { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } }                    // xe
3610 };
3611 static const SvxMSDffTextRectangles mso_sptBracePairTextRect[] =
3612 {
3613     { { 0xb MSO_I, 0xc MSO_I }, { 0xd MSO_I, 0xe MSO_I } }
3614 };
3615 static const SvxMSDffHandle mso_sptBracePairHandle[] =
3616 {
3617     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3618         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
3619 };
3620 static const mso_CustomShape msoBracePair =
3621 {
3622     (SvxMSDffVertPair*)mso_sptBracePairVert, sizeof( mso_sptBracePairVert ) / sizeof( SvxMSDffVertPair ),
3623     (sal_uInt16*)mso_sptBracePairSegm, sizeof( mso_sptBracePairSegm ) >> 1,
3624     (SvxMSDffCalculationData*)mso_sptBracePairCalc, sizeof( mso_sptBracePairCalc ) / sizeof( SvxMSDffCalculationData ),
3625     (sal_Int32*)mso_sptDefault1800,
3626     (SvxMSDffTextRectangles*)mso_sptBracePairTextRect, sizeof( mso_sptBracePairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3627     21600, 21600,
3628     10800, 0x80000000,
3629     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3630     (SvxMSDffHandle*)mso_sptBracePairHandle, sizeof( mso_sptBracePairHandle ) / sizeof( SvxMSDffHandle )        // handles
3631 };
3632 
3633 static const SvxMSDffCalculationData mso_sptBracketCalc[] =
3634 {
3635     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3636     { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3637     { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3638     { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
3639     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
3640 };
3641 static const sal_uInt16 mso_sptBracketSegm[] =
3642 {
3643     0x4000, 0x2001, 0x0001, 0x2001, 0x8000
3644 };
3645 static const SvxMSDffVertPair mso_sptLeftBracketVert[] =    // adj value 0 -> 10800
3646 {
3647     { 21600, 0 }, { 10800,  0 }, { 0, 3 MSO_I }, { 0, 1 MSO_I },
3648     { 0, 2 MSO_I }, { 0, 4 MSO_I }, { 10800, 21600 }, { 21600, 21600 }
3649 };
3650 static const SvxMSDffTextRectangles mso_sptLeftBracketTextRect[] =
3651 {
3652     { { 6350, 3 MSO_I }, { 21600, 4 MSO_I } }
3653 };
3654 static const SvxMSDffVertPair mso_sptLeftBracketGluePoints[] =
3655 {
3656     { 21600, 0 }, { 0, 10800 }, { 21600, 21600 }
3657 };
3658 static const SvxMSDffHandle mso_sptLeftBracketHandle[] =
3659 {
3660     {   MSDFF_HANDLE_FLAGS_RANGE,
3661         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3662 };
3663 static const mso_CustomShape msoLeftBracket =
3664 {
3665     (SvxMSDffVertPair*)mso_sptLeftBracketVert, sizeof( mso_sptLeftBracketVert ) / sizeof( SvxMSDffVertPair ),
3666     (sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3667     (SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3668     (sal_Int32*)mso_sptDefault1800,
3669     (SvxMSDffTextRectangles*)mso_sptLeftBracketTextRect, sizeof( mso_sptLeftBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3670     21600, 21600,
3671     0x80000000, 0x80000000,
3672     (SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3673     (SvxMSDffHandle*)mso_sptLeftBracketHandle, sizeof( mso_sptLeftBracketHandle ) / sizeof( SvxMSDffHandle )        // handles
3674 };
3675 static const SvxMSDffVertPair mso_sptRightBracketVert[] =   // adj value 0 -> 10800
3676 {
3677     { 0, 0 }, { 10800, 0 }, { 21600, 3 MSO_I }, { 21600, 1 MSO_I },
3678     { 21600, 2 MSO_I }, { 21600, 4 MSO_I }, { 10800, 21600 }, { 0, 21600 }
3679 };
3680 static const SvxMSDffTextRectangles mso_sptRightBracketTextRect[] =
3681 {
3682     { { 0, 3 MSO_I }, { 15150, 4 MSO_I } }
3683 };
3684 static const SvxMSDffVertPair mso_sptRightBracketGluePoints[] =
3685 {
3686     { 0, 0 }, { 0, 21600 }, { 21600, 10800 }
3687 };
3688 static const SvxMSDffHandle mso_sptRightBracketHandle[] =
3689 {
3690     {   MSDFF_HANDLE_FLAGS_RANGE,
3691         1, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3692 };
3693 static const mso_CustomShape msoRightBracket =
3694 {
3695     (SvxMSDffVertPair*)mso_sptRightBracketVert, sizeof( mso_sptRightBracketVert ) / sizeof( SvxMSDffVertPair ),
3696     (sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3697     (SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3698     (sal_Int32*)mso_sptDefault1800,
3699     (SvxMSDffTextRectangles*)mso_sptRightBracketTextRect, sizeof( mso_sptRightBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3700     21600, 21600,
3701     0x80000000, 0x80000000,
3702     (SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3703     (SvxMSDffHandle*)mso_sptRightBracketHandle, sizeof( mso_sptRightBracketHandle ) / sizeof( SvxMSDffHandle )      // handles
3704 };
3705 
3706 static const SvxMSDffCalculationData mso_sptBraceCalc[] =
3707 {
3708     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3709     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3710     { 0xa000, { 0x404, 0, DFF_Prop_adjustValue } },
3711     { 0xa000, { 0x404, 0, 0x400 } },
3712     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
3713     { 0x6000, { 0x404, 0x400, 0 } },
3714     { 0x6000, { 0x404, DFF_Prop_adjustValue, 0 } },
3715     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3716     { 0x8000, { 21600, 0, 0x400 } },
3717     { 0x2001, { DFF_Prop_adjustValue, 10000, 31953 } },
3718     { 0x8000, { 21600, 0, 0x409 } }
3719 };
3720 static const sal_uInt16 mso_sptBraceSegm[] =
3721 {
3722     0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
3723 };
3724 static const sal_Int32 mso_sptBraceDefault[] =
3725 {
3726     2, 1800, 10800
3727 };
3728 static const SvxMSDffVertPair mso_sptLeftBraceVert[] =
3729 {
3730     { 21600, 0 },                                               // p
3731     { 16200, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },       // ccp
3732     { 10800, 2 MSO_I },                                         // p
3733     { 10800, 3 MSO_I }, { 5400, 4 MSO_I }, { 0, 4 MSO_I },      // ccp
3734     { 5400, 4 MSO_I },  { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp
3735     { 10800, 7 MSO_I },                                         // p
3736     { 10800, 8 MSO_I }, { 16200, 21600 }, { 21600, 21600 }      // ccp
3737 };
3738 static const SvxMSDffTextRectangles mso_sptLeftBraceTextRect[] =
3739 {
3740     { { 13800, 9 MSO_I }, { 21600, 10 MSO_I } }
3741 };
3742 static const SvxMSDffHandle mso_sptLeftBraceHandle[] =
3743 {
3744     {   MSDFF_HANDLE_FLAGS_RANGE,
3745         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3746     {   MSDFF_HANDLE_FLAGS_RANGE,
3747         0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3748 };
3749 static const mso_CustomShape msoLeftBrace =     // adj value0 0 -> 5400
3750 {                                               // adj value1 0 -> 21600
3751     (SvxMSDffVertPair*)mso_sptLeftBraceVert, sizeof( mso_sptLeftBraceVert ) / sizeof( SvxMSDffVertPair ),
3752     (sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3753     (SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3754     (sal_Int32*)mso_sptBraceDefault,
3755     (SvxMSDffTextRectangles*)mso_sptLeftBraceTextRect, sizeof( mso_sptLeftBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3756     21600, 21600,
3757     0x80000000, 0x80000000,
3758     (SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3759     (SvxMSDffHandle*)mso_sptLeftBraceHandle, sizeof( mso_sptLeftBraceHandle ) / sizeof( SvxMSDffHandle )        // handles
3760 };
3761 static const SvxMSDffVertPair mso_sptRightBraceVert[] =
3762 {
3763     { 0, 0 },                                                   // p
3764     { 5400, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },        // ccp
3765     { 10800, 2 MSO_I },                                         // p
3766     { 10800, 3 MSO_I }, { 16200, 4 MSO_I }, { 21600, 4 MSO_I }, // ccp
3767     { 16200, 4 MSO_I }, { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp
3768     { 10800, 7 MSO_I },                                         // p
3769     { 10800, 8 MSO_I }, { 5400, 21600 }, { 0, 21600 }           // ccp
3770 };
3771 static const SvxMSDffTextRectangles mso_sptRightBraceTextRect[] =
3772 {
3773     { { 0, 9 MSO_I }, { 7800, 10 MSO_I } }
3774 };
3775 static const SvxMSDffHandle mso_sptRightBraceHandle[] =
3776 {
3777     {   MSDFF_HANDLE_FLAGS_RANGE,
3778         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3779     {   MSDFF_HANDLE_FLAGS_RANGE,
3780         1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3781 };
3782 static const mso_CustomShape msoRightBrace =        // adj value0 0 -> 5400
3783 {                                               // adj value1 0 -> 21600
3784     (SvxMSDffVertPair*)mso_sptRightBraceVert, sizeof( mso_sptRightBraceVert ) / sizeof( SvxMSDffVertPair ),
3785     (sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3786     (SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3787     (sal_Int32*)mso_sptBraceDefault,
3788     (SvxMSDffTextRectangles*)mso_sptRightBraceTextRect, sizeof( mso_sptRightBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3789     21600, 21600,
3790     0x80000000, 0x80000000,
3791     (SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3792     (SvxMSDffHandle*)mso_sptRightBraceHandle, sizeof( mso_sptRightBraceHandle ) / sizeof( SvxMSDffHandle )      // handles
3793 };
3794 
3795 static const SvxMSDffVertPair mso_sptIrregularSeal1Vert[] =
3796 {
3797     { 10901, 5905 }, { 8458, 2399 }, { 7417, 6425 }, { 476, 2399 },
3798     { 4732, 7722 }, { 106, 8718 }, { 3828, 11880 }, { 243, 14689 },
3799     { 5772, 14041 }, { 4868, 17719 }, { 7819, 15730 }, { 8590, 21600 },
3800     { 10637, 15038 }, { 13349, 19840 }, { 14125, 14561 }, { 18248, 18195 },
3801     { 16938, 13044 }, { 21600, 13393 }, { 17710, 10579 }, { 21198, 8242 },
3802     { 16806, 7417 }, { 18482, 4560 }, { 14257, 5429 }, { 14623, 106 }, { 10901, 5905 }
3803 };
3804 static const SvxMSDffTextRectangles mso_sptIrregularSeal1TextRect[] =
3805 {
3806     { { 4680, 6570 }, { 16140, 13280 } }
3807 };
3808 static const SvxMSDffVertPair mso_sptIrregularSeal1GluePoints[] =
3809 {
3810     { 14623, 106 }, { 106, 8718 }, { 8590, 21600 }, { 21600, 13393 }
3811 };
3812 static const mso_CustomShape msoIrregularSeal1 =
3813 {
3814     (SvxMSDffVertPair*)mso_sptIrregularSeal1Vert, sizeof( mso_sptIrregularSeal1Vert ) / sizeof( SvxMSDffVertPair ),
3815     NULL, 0,
3816     NULL, 0,
3817     NULL,
3818     (SvxMSDffTextRectangles*)mso_sptIrregularSeal1TextRect, sizeof( mso_sptIrregularSeal1TextRect ) / sizeof( SvxMSDffTextRectangles ),
3819     21600, 21600,
3820     0x80000000, 0x80000000,
3821     (SvxMSDffVertPair*)mso_sptIrregularSeal1GluePoints, sizeof( mso_sptIrregularSeal1GluePoints ) / sizeof( SvxMSDffVertPair ),
3822     NULL, 0     // handles
3823 };
3824 
3825 static const SvxMSDffVertPair mso_sptIrregularSeal2Vert[] =
3826 {
3827     { 11464, 4340 }, { 9722, 1887 }, { 8548, 6383 }, { 4503, 3626 },
3828     { 5373, 7816 }, { 1174, 8270 }, { 3934, 11592 }, { 0, 12875 },
3829     { 3329, 15372 }, { 1283, 17824 }, { 4804, 18239 }, { 4918, 21600 },
3830     { 7525, 18125 }, { 8698, 19712 }, { 9871, 17371 }, { 11614, 18844 },
3831     { 12178, 15937 }, { 14943, 17371 }, { 14640, 14348 }, { 18878, 15632 },
3832     { 16382, 12311 }, { 18270, 11292 }, { 16986, 9404 }, { 21600, 6646 },
3833     { 16382, 6533 }, { 18005, 3172 }, { 14524, 5778 }, { 14789, 0 },
3834     { 11464, 4340 }
3835 };
3836 static const SvxMSDffTextRectangles mso_sptIrregularSeal2TextRect[] =
3837 {
3838     { { 5400, 6570 }, { 14160, 15290 } }
3839 };
3840 static const SvxMSDffVertPair mso_sptIrregularSeal2GluePoints[] =
3841 {
3842     { 9722, 1887 }, { 0, 12875 }, { 11614, 18844 }, { 21600, 6646 }
3843 };
3844 static const mso_CustomShape msoIrregularSeal2 =
3845 {
3846     (SvxMSDffVertPair*)mso_sptIrregularSeal2Vert, sizeof( mso_sptIrregularSeal2Vert ) / sizeof( SvxMSDffVertPair ),
3847     NULL, 0,
3848     NULL, 0,
3849     NULL,
3850     (SvxMSDffTextRectangles*)mso_sptIrregularSeal2TextRect, sizeof( mso_sptIrregularSeal2TextRect ) / sizeof( SvxMSDffTextRectangles ),
3851     21600, 21600,
3852     0x80000000, 0x80000000,
3853     (SvxMSDffVertPair*)mso_sptIrregularSeal2GluePoints, sizeof( mso_sptIrregularSeal2GluePoints ) / sizeof( SvxMSDffVertPair ),
3854     NULL, 0     // handles
3855 };
3856 
3857 static const SvxMSDffVertPair mso_sptSeal4Vert[] =      // adjustment1 : 0 - 10800
3858 {
3859     { 0, 10800 }, { 4 MSO_I, 4 MSO_I }, { 10800, 0 }, { 3 MSO_I, 4 MSO_I },
3860     { 21600, 10800 }, { 3 MSO_I, 3 MSO_I }, { 10800, 21600 }, { 4 MSO_I, 3 MSO_I },
3861     { 0, 10800 }
3862 };
3863 static const SvxMSDffCalculationData mso_sptSeal4Calc[] =
3864 {
3865     { 0x0000, { 7600, 0, 0 } },
3866     { 0x6001, { 0x400, DFF_Prop_adjustValue, 10800 } },
3867     { 0xa000, { 0x400, 0, 0x401 } },
3868     { 0x4000, { 10800, 0x402, 0 } },
3869     { 0x8000, { 10800, 0, 0x402 } }
3870 };
3871 static const SvxMSDffTextRectangles mso_sptSeal4TextRect[] =
3872 {
3873     { { 4 MSO_I, 4 MSO_I }, { 3 MSO_I, 3 MSO_I } }
3874 };
3875 static const SvxMSDffHandle mso_sptSealHandle[] =
3876 {
3877     {   MSDFF_HANDLE_FLAGS_RANGE,
3878         0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3879 };
3880 static const mso_CustomShape msoSeal4 =
3881 {
3882     (SvxMSDffVertPair*)mso_sptSeal4Vert, sizeof( mso_sptSeal4Vert ) / sizeof( SvxMSDffVertPair ),
3883     NULL, 0,
3884     (SvxMSDffCalculationData*)mso_sptSeal4Calc, sizeof( mso_sptSeal4Calc ) / sizeof( SvxMSDffCalculationData ),
3885     (sal_Int32*)mso_sptDefault8100,
3886     (SvxMSDffTextRectangles*)mso_sptSeal4TextRect, sizeof( mso_sptSeal4TextRect ) / sizeof( SvxMSDffTextRectangles ),
3887     21600, 21600,
3888     0x80000000, 0x80000000,
3889     NULL, 0,
3890     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
3891 };
3892 
3893 static const SvxMSDffVertPair mso_sptStarVert[] =
3894 {
3895     { 10797, 0 }, { 8278, 8256 }, { 0, 8256 }, { 6722, 13405 },
3896     { 4198, 21600 }, { 10797, 16580 }, { 17401, 21600 }, { 14878, 13405 },
3897     { 21600, 8256 }, { 13321, 8256 }, { 10797, 0 }
3898 };
3899 static const SvxMSDffTextRectangles mso_sptStarTextRect[] =
3900 {
3901     { { 6722, 8256 }, { 14878, 15460 } }
3902 };
3903 static const mso_CustomShape msoStar =
3904 {
3905     (SvxMSDffVertPair*)mso_sptStarVert, sizeof( mso_sptStarVert ) / sizeof( SvxMSDffVertPair ),
3906     NULL, 0,
3907     NULL, 0,
3908     NULL,
3909     (SvxMSDffTextRectangles*)mso_sptStarTextRect, sizeof( mso_sptStarTextRect ) / sizeof( SvxMSDffTextRectangles ),
3910     21600, 21600,
3911     0x80000000, 0x80000000,
3912     NULL, 0,
3913     NULL, 0     // handles
3914 };
3915 
3916 static const SvxMSDffCalculationData mso_sptSeal24Calc[] =
3917 {
3918     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0x00
3919     { 0x2081, { 0x400, 10800, 315 } },              // 0x01 ( textframe )
3920     { 0x2082, { 0x400, 10800, 315 } },              // 0x02
3921     { 0x2081, { 0x400, 10800, 135 } },              // 0x03
3922     { 0x2082, { 0x400, 10800, 135 } },              // 0x04
3923     { 0x0081, { 0,   10800, 0 } },
3924     { 0x0082, { 0,   10800, 0 } },
3925     { 0x2081, { 0x400, 10800, 7 } },
3926     { 0x2082, { 0x400, 10800, 7 } },
3927     { 0x0081, { 0,   10800, 15 } },
3928     { 0x0082, { 0,   10800, 15 } },
3929     { 0x2081, { 0x400, 10800, 22 } },
3930     { 0x2082, { 0x400, 10800, 22 } },
3931     { 0x0081, { 0,   10800, 30 } },
3932     { 0x0082, { 0,   10800, 30 } },
3933     { 0x2081, { 0x400, 10800, 37 } },
3934     { 0x2082, { 0x400, 10800, 37 } },
3935     { 0x0081, { 0,   10800, 45 } },
3936     { 0x0082, { 0,   10800, 45 } },
3937     { 0x2081, { 0x400, 10800, 52 } },
3938     { 0x2082, { 0x400, 10800, 52 } },
3939     { 0x0081, { 0,   10800, 60 } },
3940     { 0x0082, { 0,   10800, 60 } },
3941     { 0x2081, { 0x400, 10800, 67 } },
3942     { 0x2082, { 0x400, 10800, 67 } },
3943     { 0x0081, { 0,   10800, 75 } },
3944     { 0x0082, { 0,   10800, 75 } },
3945     { 0x2081, { 0x400, 10800, 82 } },
3946     { 0x2082, { 0x400, 10800, 82 } },
3947     { 0x0081, { 0,   10800, 90 } },
3948     { 0x0082, { 0,   10800, 90 } },
3949     { 0x2081, { 0x400, 10800, 97 } },
3950     { 0x2082, { 0x400, 10800, 97 } },
3951     { 0x0081, { 0,   10800, 105 } },
3952     { 0x0082, { 0,   10800, 105 } },
3953     { 0x2081, { 0x400, 10800, 112 } },
3954     { 0x2082, { 0x400, 10800, 112 } },
3955     { 0x0081, { 0,   10800, 120 } },
3956     { 0x0082, { 0,   10800, 120 } },
3957     { 0x2081, { 0x400, 10800, 127 } },
3958     { 0x2082, { 0x400, 10800, 127 } },
3959     { 0x0081, { 0,   10800, 135 } },
3960     { 0x0082, { 0,   10800, 135 } },
3961     { 0x2081, { 0x400, 10800, 142 } },
3962     { 0x2082, { 0x400, 10800, 142 } },
3963     { 0x0081, { 0,   10800, 150 } },
3964     { 0x0082, { 0,   10800, 150 } },
3965     { 0x2081, { 0x400, 10800, 157 } },
3966     { 0x2082, { 0x400, 10800, 157 } },
3967     { 0x0081, { 0,   10800, 165 } },
3968     { 0x0082, { 0,   10800, 165 } },
3969     { 0x2081, { 0x400, 10800, 172 } },
3970     { 0x2082, { 0x400, 10800, 172 } },
3971     { 0x0081, { 0,   10800, 180 } },
3972     { 0x0082, { 0,   10800, 180 } },
3973     { 0x2081, { 0x400, 10800, 187 } },
3974     { 0x2082, { 0x400, 10800, 187 } },
3975     { 0x0081, { 0,   10800, 195 } },
3976     { 0x0082, { 0,   10800, 195 } },
3977     { 0x2081, { 0x400, 10800, 202 } },
3978     { 0x2082, { 0x400, 10800, 202 } },
3979     { 0x0081, { 0,   10800, 210 } },
3980     { 0x0082, { 0,   10800, 210 } },
3981     { 0x2081, { 0x400, 10800, 217 } },
3982     { 0x2082, { 0x400, 10800, 217 } },
3983     { 0x0081, { 0,   10800, 225 } },
3984     { 0x0082, { 0,   10800, 225 } },
3985     { 0x2081, { 0x400, 10800, 232 } },
3986     { 0x2082, { 0x400, 10800, 232 } },
3987     { 0x0081, { 0,   10800, 240 } },
3988     { 0x0082, { 0,   10800, 240 } },
3989     { 0x2081, { 0x400, 10800, 247 } },
3990     { 0x2082, { 0x400, 10800, 247 } },
3991     { 0x0081, { 0,   10800, 255 } },
3992     { 0x0082, { 0,   10800, 255 } },
3993     { 0x2081, { 0x400, 10800, 262 } },
3994     { 0x2082, { 0x400, 10800, 262 } },
3995     { 0x0081, { 0,   10800, 270 } },
3996     { 0x0082, { 0,   10800, 270 } },
3997     { 0x2081, { 0x400, 10800, 277 } },
3998     { 0x2082, { 0x400, 10800, 277 } },
3999     { 0x0081, { 0,   10800, 285 } },
4000     { 0x0082, { 0,   10800, 285 } },
4001     { 0x2081, { 0x400, 10800, 292 } },
4002     { 0x2082, { 0x400, 10800, 292 } },
4003     { 0x0081, { 0,   10800, 300 } },
4004     { 0x0082, { 0,   10800, 300 } },
4005     { 0x2081, { 0x400, 10800, 307 } },
4006     { 0x2082, { 0x400, 10800, 307 } },
4007     { 0x0081, { 0,   10800, 315 } },
4008     { 0x0082, { 0,   10800, 315 } },
4009     { 0x2081, { 0x400, 10800, 322 } },
4010     { 0x2082, { 0x400, 10800, 322 } },
4011     { 0x0081, { 0,   10800, 330 } },
4012     { 0x0082, { 0,   10800, 330 } },
4013     { 0x2081, { 0x400, 10800, 337 } },
4014     { 0x2082, { 0x400, 10800, 337 } },
4015     { 0x0081, { 0,   10800, 345 } },
4016     { 0x0082, { 0,   10800, 345 } },
4017     { 0x2081, { 0x400, 10800, 352 } },
4018     { 0x2082, { 0x400, 10800, 352 } }
4019 };
4020 static const SvxMSDffVertPair mso_sptSeal8Vert[] =  // adj value 0 -> 10800
4021 {
4022     { 5 MSO_I, 6 MSO_I }, { 11 MSO_I, 12 MSO_I }, { 17 MSO_I, 18 MSO_I }, { 23 MSO_I, 24 MSO_I },
4023     { 29 MSO_I, 30 MSO_I }, { 35 MSO_I, 36 MSO_I }, { 41 MSO_I, 42 MSO_I }, { 47 MSO_I, 48 MSO_I },
4024     { 53 MSO_I, 54 MSO_I }, { 59 MSO_I, 60 MSO_I }, { 65 MSO_I, 66 MSO_I }, { 71 MSO_I, 72 MSO_I },
4025     { 77 MSO_I, 78 MSO_I }, { 83 MSO_I, 84 MSO_I }, { 89 MSO_I, 90 MSO_I }, { 95 MSO_I, 96 MSO_I },
4026     { 5 MSO_I, 6 MSO_I }
4027 };
4028 static const SvxMSDffTextRectangles mso_sptSealTextRect[] =
4029 {
4030     { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
4031 };
4032 static const mso_CustomShape msoSeal8 =
4033 {
4034     (SvxMSDffVertPair*)mso_sptSeal8Vert, sizeof( mso_sptSeal8Vert ) / sizeof( SvxMSDffVertPair ),
4035     NULL, 0,
4036     (SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4037     (sal_Int32*)mso_sptDefault2500,
4038     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4039     21600, 21600,
4040     0x80000000, 0x80000000,
4041     NULL, 0,
4042     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
4043 };
4044 static const SvxMSDffVertPair mso_sptSeal16Vert[] = // adj value 0 -> 10800
4045 {
4046     { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4047     { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4048     { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4049     { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4050     { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4051     { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4052     { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4053     { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4054     { 0x05 MSO_I, 0x06 MSO_I }
4055 };
4056 static const SvxMSDffCalculationData mso_sptSeal16Calc[] =
4057 {
4058     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0x00
4059     { 0x2081, { 0x400, 10800, 315 } },              // 0x01 ( textframe )
4060     { 0x2082, { 0x400, 10800, 315 } },              // 0x02
4061     { 0x2081, { 0x400, 10800, 135 } },              // 0x03
4062     { 0x2082, { 0x400, 10800, 135 } },              // 0x04
4063     { 0x0081, { 0,   10800, 0 } },
4064     { 0x0082, { 0,   10800, 0 } },
4065     { 0x2081, { 0x400, 10800, 11 } },
4066     { 0x2082, { 0x400, 10800, 11 } },
4067     { 0x0081, { 0,   10800, 22 } },
4068     { 0x0082, { 0,   10800, 22 } },
4069     { 0x2081, { 0x400, 10800, 33 } },
4070     { 0x2082, { 0x400, 10800, 33 } },
4071     { 0x0081, { 0,   10800, 45 } },
4072     { 0x0082, { 0,   10800, 45 } },
4073     { 0x2081, { 0x400, 10800, 56 } },
4074     { 0x2082, { 0x400, 10800, 56 } },
4075     { 0x0081, { 0,   10800, 67 } },
4076     { 0x0082, { 0,   10800, 67 } },
4077     { 0x2081, { 0x400, 10800, 78 } },
4078     { 0x2082, { 0x400, 10800, 78 } },
4079     { 0x0081, { 0,   10800, 90 } },
4080     { 0x0082, { 0,   10800, 90 } },
4081     { 0x2081, { 0x400, 10800, 101 } },
4082     { 0x2082, { 0x400, 10800, 101 } },
4083     { 0x0081, { 0,   10800, 112 } },
4084     { 0x0082, { 0,   10800, 112 } },
4085     { 0x2081, { 0x400, 10800, 123 } },
4086     { 0x2082, { 0x400, 10800, 123 } },
4087     { 0x0081, { 0,   10800, 135 } },
4088     { 0x0082, { 0,   10800, 135 } },
4089     { 0x2081, { 0x400, 10800, 146 } },
4090     { 0x2082, { 0x400, 10800, 146 } },
4091     { 0x0081, { 0,   10800, 157 } },
4092     { 0x0082, { 0,   10800, 157 } },
4093     { 0x2081, { 0x400, 10800, 168 } },
4094     { 0x2082, { 0x400, 10800, 168 } },
4095     { 0x0081, { 0,   10800, 180 } },
4096     { 0x0082, { 0,   10800, 180 } },
4097     { 0x2081, { 0x400, 10800, 191 } },
4098     { 0x2082, { 0x400, 10800, 191 } },
4099     { 0x0081, { 0,   10800, 202 } },
4100     { 0x0082, { 0,   10800, 202 } },
4101     { 0x2081, { 0x400, 10800, 213 } },
4102     { 0x2082, { 0x400, 10800, 213 } },
4103     { 0x0081, { 0,   10800, 225 } },
4104     { 0x0082, { 0,   10800, 225 } },
4105     { 0x2081, { 0x400, 10800, 236 } },
4106     { 0x2082, { 0x400, 10800, 236 } },
4107     { 0x0081, { 0,   10800, 247 } },
4108     { 0x0082, { 0,   10800, 247 } },
4109     { 0x2081, { 0x400, 10800, 258 } },
4110     { 0x2082, { 0x400, 10800, 258 } },
4111     { 0x0081, { 0,   10800, 270 } },
4112     { 0x0082, { 0,   10800, 270 } },
4113     { 0x2081, { 0x400, 10800, 281 } },
4114     { 0x2082, { 0x400, 10800, 281 } },
4115     { 0x0081, { 0,   10800, 292 } },
4116     { 0x0082, { 0,   10800, 292 } },
4117     { 0x2081, { 0x400, 10800, 303 } },
4118     { 0x2082, { 0x400, 10800, 303 } },
4119     { 0x0081, { 0,   10800, 315 } },
4120     { 0x0082, { 0,   10800, 315 } },
4121     { 0x2081, { 0x400, 10800, 326 } },
4122     { 0x2082, { 0x400, 10800, 326 } },
4123     { 0x0081, { 0,   10800, 337 } },
4124     { 0x0082, { 0,   10800, 337 } },
4125     { 0x2081, { 0x400, 10800, 348 } },
4126     { 0x2082, { 0x400, 10800, 348 } }
4127 };
4128 static const mso_CustomShape msoSeal16 =
4129 {
4130     (SvxMSDffVertPair*)mso_sptSeal16Vert, sizeof( mso_sptSeal16Vert ) / sizeof( SvxMSDffVertPair ),
4131     NULL, 0,
4132     (SvxMSDffCalculationData*)mso_sptSeal16Calc, sizeof( mso_sptSeal16Calc ) / sizeof( SvxMSDffCalculationData ),
4133     (sal_Int32*)mso_sptDefault2500,
4134     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4135     21600, 21600,
4136     0x80000000, 0x80000000,
4137     NULL, 0,
4138     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
4139 };
4140 static const SvxMSDffVertPair mso_sptSeal24Vert[] =
4141 {
4142     { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4143     { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4144     { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4145     { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4146     { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4147     { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4148     { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4149     { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4150     { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4151     { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4152     { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4153     { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4154     { 0x05 MSO_I, 0x06 MSO_I }
4155 };
4156 static const mso_CustomShape msoSeal24 =
4157 {
4158     (SvxMSDffVertPair*)mso_sptSeal24Vert, sizeof( mso_sptSeal24Vert ) / sizeof( SvxMSDffVertPair ),
4159     NULL, 0,
4160     (SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4161     (sal_Int32*)mso_sptDefault2500,
4162     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4163     21600, 21600,
4164     0x80000000, 0x80000000,
4165     NULL, 0,
4166     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )      // handles
4167 };
4168 static const SvxMSDffCalculationData mso_sptSeal32Calc[] =
4169 {
4170     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 0x00
4171     { 0x2081, { 0x400, 10800, 315 } },              // 0x01 ( textframe )
4172     { 0x2082, { 0x400, 10800, 315 } },              // 0x02
4173     { 0x2081, { 0x400, 10800, 135 } },              // 0x03
4174     { 0x2082, { 0x400, 10800, 135 } },              // 0x04
4175     { 0x0081, { 0,   10800, 0 } },
4176     { 0x0082, { 0,   10800, 0 } },
4177     { 0x2081, { 0x400, 10800, 5 } },
4178     { 0x2082, { 0x400, 10800, 5 } },
4179     { 0x0081, { 0,   10800, 11 } },
4180     { 0x0082, { 0,   10800, 11 } },
4181     { 0x2081, { 0x400, 10800, 16 } },
4182     { 0x2082, { 0x400, 10800, 16 } },
4183     { 0x0081, { 0,   10800, 22 } },
4184     { 0x0082, { 0,   10800, 22 } },
4185     { 0x2081, { 0x400, 10800, 28 } },
4186     { 0x2082, { 0x400, 10800, 28 } },
4187     { 0x0081, { 0,   10800, 33 } },
4188     { 0x0082, { 0,   10800, 33 } },
4189     { 0x2081, { 0x400, 10800, 39 } },
4190     { 0x2082, { 0x400, 10800, 39 } },
4191     { 0x0081, { 0,   10800, 45 } },
4192     { 0x0082, { 0,   10800, 45 } },
4193     { 0x2081, { 0x400, 10800, 50 } },
4194     { 0x2082, { 0x400, 10800, 50 } },
4195     { 0x0081, { 0,   10800, 56 } },
4196     { 0x0082, { 0,   10800, 56 } },
4197     { 0x2081, { 0x400, 10800, 61 } },
4198     { 0x2082, { 0x400, 10800, 61 } },
4199     { 0x0081, { 0,   10800, 67 } },
4200     { 0x0082, { 0,   10800, 67 } },
4201     { 0x2081, { 0x400, 10800, 73 } },
4202     { 0x2082, { 0x400, 10800, 73 } },
4203     { 0x0081, { 0,   10800, 78 } },
4204     { 0x0082, { 0,   10800, 78 } },
4205     { 0x2081, { 0x400, 10800, 84 } },
4206     { 0x2082, { 0x400, 10800, 84 } },
4207     { 0x0081, { 0,   10800, 90 } },
4208     { 0x0082, { 0,   10800, 90 } },
4209     { 0x2081, { 0x400, 10800, 95 } },
4210     { 0x2082, { 0x400, 10800, 95 } },
4211     { 0x0081, { 0,   10800, 101 } },
4212     { 0x0082, { 0,   10800, 101 } },
4213     { 0x2081, { 0x400, 10800, 106 } },
4214     { 0x2082, { 0x400, 10800, 106 } },
4215     { 0x0081, { 0,   10800, 112 } },
4216     { 0x0082, { 0,   10800, 112 } },
4217     { 0x2081, { 0x400, 10800, 118 } },
4218     { 0x2082, { 0x400, 10800, 118 } },
4219     { 0x0081, { 0,   10800, 123 } },
4220     { 0x0082, { 0,   10800, 123 } },
4221     { 0x2081, { 0x400, 10800, 129 } },
4222     { 0x2082, { 0x400, 10800, 129 } },
4223     { 0x0081, { 0,   10800, 135 } },
4224     { 0x0082, { 0,   10800, 135 } },
4225     { 0x2081, { 0x400, 10800, 140 } },
4226     { 0x2082, { 0x400, 10800, 140 } },
4227     { 0x0081, { 0,   10800, 146 } },
4228     { 0x0082, { 0,   10800, 146 } },
4229     { 0x2081, { 0x400, 10800, 151 } },
4230     { 0x2082, { 0x400, 10800, 151 } },
4231     { 0x0081, { 0,   10800, 157 } },
4232     { 0x0082, { 0,   10800, 157 } },
4233     { 0x2081, { 0x400, 10800, 163 } },
4234     { 0x2082, { 0x400, 10800, 163 } },
4235     { 0x0081, { 0,   10800, 168 } },
4236     { 0x0082, { 0,   10800, 168 } },
4237     { 0x2081, { 0x400, 10800, 174 } },
4238     { 0x2082, { 0x400, 10800, 174 } },
4239     { 0x0081, { 0,   10800, 180 } },
4240     { 0x0082, { 0,   10800, 180 } },
4241     { 0x2081, { 0x400, 10800, 185 } },
4242     { 0x2082, { 0x400, 10800, 185 } },
4243     { 0x0081, { 0,   10800, 191 } },
4244     { 0x0082, { 0,   10800, 191 } },
4245     { 0x2081, { 0x400, 10800, 196 } },
4246     { 0x2082, { 0x400, 10800, 196 } },
4247     { 0x0081, { 0,   10800, 202 } },
4248     { 0x0082, { 0,   10800, 202 } },
4249     { 0x2081, { 0x400, 10800, 208 } },
4250     { 0x2082, { 0x400, 10800, 208 } },
4251     { 0x0081, { 0,   10800, 213 } },
4252     { 0x0082, { 0,   10800, 213 } },
4253     { 0x2081, { 0x400, 10800, 219 } },
4254     { 0x2082, { 0x400, 10800, 219 } },
4255     { 0x0081, { 0,   10800, 225 } },
4256     { 0x0082, { 0,   10800, 225 } },
4257     { 0x2081, { 0x400, 10800, 230 } },
4258     { 0x2082, { 0x400, 10800, 230 } },
4259     { 0x0081, { 0,   10800, 236 } },
4260     { 0x0082, { 0,   10800, 236 } },
4261     { 0x2081, { 0x400, 10800, 241 } },
4262     { 0x2082, { 0x400, 10800, 241 } },
4263     { 0x0081, { 0,   10800, 247 } },
4264     { 0x0082, { 0,   10800, 247 } },
4265     { 0x2081, { 0x400, 10800, 253 } },
4266     { 0x2082, { 0x400, 10800, 253 } },
4267     { 0x0081, { 0,   10800, 258 } },
4268     { 0x0082, { 0,   10800, 258 } },
4269     { 0x2081, { 0x400, 10800, 264 } },
4270     { 0x2082, { 0x400, 10800, 264 } },
4271     { 0x0081, { 0,   10800, 270 } },
4272     { 0x0082, { 0,   10800, 270 } },
4273     { 0x2081, { 0x400, 10800, 275 } },
4274     { 0x2082, { 0x400, 10800, 275 } },
4275     { 0x0081, { 0,   10800, 281 } },
4276     { 0x0082, { 0,   10800, 281 } },
4277     { 0x2081, { 0x400, 10800, 286 } },
4278     { 0x2082, { 0x400, 10800, 286 } },
4279     { 0x0081, { 0,   10800, 292 } },
4280     { 0x0082, { 0,   10800, 292 } },
4281     { 0x2081, { 0x400, 10800, 298 } },
4282     { 0x2082, { 0x400, 10800, 298 } },
4283     { 0x0081, { 0,   10800, 303 } },
4284     { 0x0082, { 0,   10800, 303 } },
4285     { 0x2081, { 0x400, 10800, 309 } },
4286     { 0x2082, { 0x400, 10800, 309 } },
4287     { 0x0081, { 0,   10800, 315 } },
4288     { 0x0082, { 0,   10800, 315 } },
4289     { 0x2081, { 0x400, 10800, 320 } },
4290     { 0x2082, { 0x400, 10800, 320 } },
4291     { 0x0081, { 0,   10800, 326 } },
4292     { 0x0082, { 0,   10800, 326 } },
4293     { 0x2081, { 0x400, 10800, 331 } },
4294     { 0x2082, { 0x400, 10800, 331 } },
4295     { 0x0081, { 0,   10800, 337 } },
4296     { 0x0082, { 0,   10800, 337 } },
4297     { 0x2081, { 0x400, 10800, 343 } },
4298     { 0x2082, { 0x400, 10800, 343 } },
4299     { 0x0081, { 0,   10800, 348 } },
4300     { 0x0082, { 0,   10800, 348 } },
4301     { 0x2081, { 0x400, 10800, 354 } },
4302     { 0x2082, { 0x400, 10800, 354 } }
4303 };
4304 static const SvxMSDffVertPair mso_sptSeal32Vert[] =
4305 {
4306     { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4307     { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4308     { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4309     { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4310     { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4311     { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4312     { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4313     { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4314     { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4315     { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4316     { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4317     { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4318     { 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I },
4319     { 0x6d MSO_I, 0x6e MSO_I }, { 0x6f MSO_I, 0x70 MSO_I }, { 0x71 MSO_I, 0x72 MSO_I }, { 0x73 MSO_I, 0x74 MSO_I },
4320     { 0x75 MSO_I, 0x76 MSO_I }, { 0x77 MSO_I, 0x78 MSO_I }, { 0x79 MSO_I, 0x7a MSO_I }, { 0x7b MSO_I, 0x7c MSO_I },
4321     { 0x7d MSO_I, 0x7e MSO_I }, { 0x7f MSO_I, 0x80 MSO_I }, { 0x81 MSO_I, 0x82 MSO_I }, { 0x83 MSO_I, 0x84 MSO_I },
4322     { 0x05 MSO_I, 0x06 MSO_I }
4323 };
4324 static const mso_CustomShape msoSeal32 =
4325 {
4326     (SvxMSDffVertPair*)mso_sptSeal32Vert, sizeof( mso_sptSeal32Vert ) / sizeof( SvxMSDffVertPair ),
4327     NULL, 0,
4328     (SvxMSDffCalculationData*)mso_sptSeal32Calc, sizeof( mso_sptSeal32Calc ) / sizeof( SvxMSDffCalculationData ),
4329     (sal_Int32*)mso_sptDefault2500,
4330     (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4331     21600, 21600,
4332     0x80000000, 0x80000000,
4333     NULL, 0,
4334     (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )
4335 };
4336 
4337 static const SvxMSDffVertPair mso_sptRibbon2Vert[] =    // adjustment1 : x 2700  - 8100     def 5400
4338 {                                                       // adjustment2 : y 14400 - 21600    def 18900
4339     { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },                                      // pp
4340     { 12 MSO_I, 14 MSO_I }, { 15 MSO_I, 21600 }, { 16 MSO_I, 21600 },                   // ccp
4341     { 0, 21600 }, { 2750, 7 MSO_I }, { 0, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },              // pppp
4342     { 0 MSO_I, 4 MSO_I },                                                               // p
4343     { 0 MSO_I, 5 MSO_I }, { 10 MSO_I, 0 }, { 11 MSO_I, 0 },                             // ccp
4344     { 17 MSO_I, 0 },                                                                    // p
4345     { 18 MSO_I, 0 }, { 19 MSO_I, 5 MSO_I }, { 19 MSO_I, 4 MSO_I },                      // ccp
4346     { 19 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }, { 18850, 7 MSO_I }, { 21600, 21600 },    // pppp
4347     { 20 MSO_I, 21600 },                                                                // p
4348     { 21 MSO_I, 21600 }, { 22 MSO_I, 14 MSO_I }, { 22 MSO_I, 13 MSO_I },                // ccp
4349     { 22 MSO_I, 1 MSO_I }, { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },               // ppp
4350     { 12 MSO_I, 23 MSO_I }, { 15 MSO_I, 24 MSO_I }, { 16 MSO_I, 24 MSO_I },             // ccp
4351     { 11 MSO_I, 24 MSO_I },                                                             // p
4352     { 10 MSO_I, 24 MSO_I }, { 0 MSO_I, 26 MSO_I }, { 0 MSO_I, 25 MSO_I },               // ccp
4353     { 0 MSO_I, 27 MSO_I }, { 10 MSO_I, 1 MSO_I }, { 11 MSO_I, 1 MSO_I },                // ccp
4354 
4355     { 22 MSO_I, 1 MSO_I }, { 22 MSO_I, 13 MSO_I },                                      // pp
4356     { 22 MSO_I, 23 MSO_I }, { 21 MSO_I, 24 MSO_I }, { 20 MSO_I, 24 MSO_I },             // ccp
4357     { 17 MSO_I, 24 MSO_I },                                                             // p
4358     { 18 MSO_I, 24 MSO_I }, { 19 MSO_I, 26 MSO_I }, { 19 MSO_I, 25 MSO_I },             // ccp
4359     { 19 MSO_I, 27 MSO_I }, { 18 MSO_I, 1 MSO_I }, { 17 MSO_I, 1 MSO_I },               // ccp
4360 
4361     { 0 MSO_I, 25 MSO_I }, { 0 MSO_I, 2 MSO_I },                                        // pp
4362 
4363     { 19 MSO_I, 25 MSO_I }, { 19 MSO_I, 2 MSO_I }                                       // pp
4364 };
4365 static const sal_uInt16 mso_sptRibbon2Segm[] =
4366 {
4367     0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000,
4368     0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4369     0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4370     0x4000, 0x0001, 0x8000,
4371     0x4000, 0x0001, 0x8000
4372 };
4373 static const SvxMSDffCalculationData mso_sptRibbon2Calc[] =
4374 {
4375     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },             // 00
4376     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },            // 01
4377     { 0x8000, { 21600, 0, 0x401 } },                        // 02
4378     { 0x2001, { 0x402, 1, 2 } },                            // 03
4379     { 0x2001, { 0x403, 1, 2 } },                            // 04
4380     { 0x2001, { 0x404, 1, 2 } },                            // 05
4381     { 0x2001, { 0x401, 1, 2 } },                            // 06
4382     { 0x8000, { 21600, 0, 0x406 } },                        // 07
4383     { 0x0000, { 420, 0, 0 } },                              // 08
4384     { 0x2001, { 0x408, 2, 1 } },                            // 09
4385     { 0x6000, { 0x400, 0x408, 0 } },                        // 10
4386     { 0x6000, { 0x400, 0x409, 0 } },                        // 11
4387     { 0x2000, { 0x400, 2700, 0 } },                         // 12
4388     { 0x8000, { 21600, 0, 0x404 } },                        // 13
4389     { 0x8000, { 21600, 0, 0x405 } },                        // 14
4390     { 0xa000, { 0x40c, 0, 0x408 } },                        // 15
4391     { 0xa000, { 0x40c, 0, 0x409 } },                        // 16
4392 
4393     { 0x8000, { 21600, 0, 0x40b } },                        // 17
4394     { 0x8000, { 21600, 0, 0x40a } },                        // 18
4395     { 0x8000, { 21600, 0, 0x400 } },                        // 19
4396     { 0x8000, { 21600, 0, 0x410 } },                        // 20
4397     { 0x8000, { 21600, 0, 0x40f } },                        // 21
4398     { 0x8000, { 21600, 0, 0x40c } },                        // 22
4399 
4400     { 0xa000, { 0x40d, 0, 0x405 } },                        // 23
4401     { 0x6000, { 0x401, 0x403, 0 } },                        // 24
4402     { 0x6000, { 0x401, 0x404, 0 } },                        // 25
4403     { 0x6000, { 0x419, 0x405, 0 } },                        // 26
4404     { 0xa000, { 0x419, 0, 0x405 } }                         // 27
4405 };
4406 static const sal_Int32 mso_sptRibbon2Default[] =
4407 {
4408     2, 5400, 18900
4409 };
4410 static const SvxMSDffTextRectangles mso_sptRibbon2TextRect[] =
4411 {
4412     { { 0 MSO_I, 0 }, { 19 MSO_I, 1 MSO_I } }
4413 };
4414 static const SvxMSDffHandle mso_sptRibbon2Handle[] =
4415 {
4416     {   MSDFF_HANDLE_FLAGS_RANGE,
4417         0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4418     {   MSDFF_HANDLE_FLAGS_RANGE,
4419         10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
4420 };
4421 static const mso_CustomShape msoRibbon2 =
4422 {
4423     (SvxMSDffVertPair*)mso_sptRibbon2Vert, sizeof( mso_sptRibbon2Vert ) / sizeof( SvxMSDffVertPair ),
4424     (sal_uInt16*)mso_sptRibbon2Segm, sizeof( mso_sptRibbon2Segm ) >> 1,
4425     (SvxMSDffCalculationData*)mso_sptRibbon2Calc, sizeof( mso_sptRibbon2Calc ) / sizeof( SvxMSDffCalculationData ),
4426     (sal_Int32*)mso_sptRibbon2Default,
4427     (SvxMSDffTextRectangles*)mso_sptRibbon2TextRect, sizeof( mso_sptRibbon2TextRect ) / sizeof( SvxMSDffTextRectangles ),
4428     21600, 21600,
4429     0x80000000, 0x80000000,
4430     NULL, 0,
4431     (SvxMSDffHandle*)mso_sptRibbon2Handle, sizeof( mso_sptRibbon2Handle ) / sizeof( SvxMSDffHandle )
4432 };
4433 
4434 static const SvxMSDffVertPair mso_sptRibbonVert[] =
4435 {
4436     { 0, 0 }, { 3 MSO_I, 0 },
4437     { 4 MSO_I, 11 MSO_I }, { 4 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I }, { 5 MSO_I, 11 MSO_I },
4438     { 6 MSO_I, 0 }, { 21600, 0 }, { 18 MSO_I, 14 MSO_I }, { 21600, 15 MSO_I }, { 9 MSO_I, 15 MSO_I }, { 9 MSO_I, 16 MSO_I }, { 8 MSO_I, 21600 }, { 1 MSO_I, 21600 },
4439     { 0 MSO_I, 16 MSO_I }, { 0 MSO_I, 15 MSO_I }, { 0, 15 MSO_I }, { 2700, 14 MSO_I },
4440 
4441     { 4 MSO_I, 11 MSO_I },
4442     { 3 MSO_I, 12 MSO_I }, { 1 MSO_I, 12 MSO_I },
4443     { 0 MSO_I, 13 MSO_I }, { 1 MSO_I, 10 MSO_I }, { 4 MSO_I, 10 MSO_I },
4444     { 5 MSO_I, 11 MSO_I },
4445     { 6 MSO_I, 12 MSO_I }, { 8 MSO_I, 12 MSO_I },
4446     { 9 MSO_I, 13 MSO_I }, { 8 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I },
4447     { 0 MSO_I, 13 MSO_I },
4448     { 0 MSO_I, 15 MSO_I },
4449     { 9 MSO_I, 13 MSO_I },
4450     { 9 MSO_I, 15 MSO_I }
4451 };
4452 static const sal_uInt16 mso_sptRibbonSegm[] =
4453 {
4454     0x4000, 0x0001, 0xa701, 0x0003, 0xa801, 0x0005, 0xa801, 0x0001, 0xa701, 0x0003, 0x6000, 0x8000,
4455     0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4456     0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4457     0x4000, 0xaa00, 0x0001, 0x8000,
4458     0x4000, 0xaa00, 0x0001, 0x8000
4459 };
4460 static const SvxMSDffCalculationData mso_sptRibbonCalc[] =
4461 {
4462     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },             // 00
4463     { 0x2000, { 0x400, 675, 0 } },                          // 01
4464     { 0x2000, { 0x401, 675, 0 } },                          // 02
4465     { 0x2000, { 0x402, 675, 0 } },                          // 03
4466     { 0x2000, { 0x403, 675, 0 } },                          // 04
4467     { 0x8000, { 21600, 0, 0x404 } },                        // 05
4468     { 0x8000, { 21600, 0, 0x403 } },                        // 06
4469     { 0x8000, { 21600, 0, 0x402 } },                        // 07
4470     { 0x8000, { 21600, 0, 0x401 } },                        // 08
4471     { 0x8000, { 21600, 0, 0x400 } },                        // 09
4472     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },            // 10
4473     { 0x2001, { 0x40a, 1, 4 } },                            // 11
4474     { 0x2001, { 0x40b, 2, 1 } },                            // 12
4475     { 0x2001, { 0x40b, 3, 1 } },                            // 13
4476     { 0x8000, { 10800, 0, 0x40c } },                        // 14
4477     { 0x8000, { 21600, 0, 0x40a } },                        // 15
4478     { 0x8000, { 21600, 0, 0x40b } },                        // 16
4479     { 0x0001, { 21600, 1, 2 } },                            // 17
4480     { 0x0000, { 21600, 0, 2700 } },                         // 18
4481     { 0x2000, { 0x411, 0, 2700 } }                          // 19
4482 };
4483 static const sal_Int32 mso_sptRibbonDefault[] =
4484 {
4485     2, 5400, 2700
4486 };
4487 static const SvxMSDffTextRectangles mso_sptRibbonTextRect[] =
4488 {
4489     { { 0 MSO_I, 10 MSO_I }, { 9 MSO_I, 21600 } }
4490 };
4491 static const SvxMSDffVertPair mso_sptRibbonGluePoints[] =
4492 {
4493     { 17 MSO_I, 10 MSO_I }, { 2700, 14 MSO_I }, { 17 MSO_I, 21600 }, { 18 MSO_I, 14 MSO_I }
4494 };
4495 static const SvxMSDffHandle mso_sptRibbonHandle[] =
4496 {
4497     {   MSDFF_HANDLE_FLAGS_RANGE,
4498         0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4499     {   MSDFF_HANDLE_FLAGS_RANGE,
4500         10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
4501 };
4502 static const mso_CustomShape msoRibbon =
4503 {
4504     (SvxMSDffVertPair*)mso_sptRibbonVert, sizeof( mso_sptRibbonVert ) / sizeof( SvxMSDffVertPair ),
4505     (sal_uInt16*)mso_sptRibbonSegm, sizeof( mso_sptRibbonSegm ) >> 1,
4506     (SvxMSDffCalculationData*)mso_sptRibbonCalc, sizeof( mso_sptRibbonCalc ) / sizeof( SvxMSDffCalculationData ),
4507     (sal_Int32*)mso_sptRibbonDefault,
4508     (SvxMSDffTextRectangles*)mso_sptRibbonTextRect, sizeof( mso_sptRibbonTextRect ) / sizeof( SvxMSDffTextRectangles ),
4509     21600, 21600,
4510     0x80000000, 0x80000000,
4511     (SvxMSDffVertPair*)mso_sptRibbonGluePoints, sizeof( mso_sptRibbonGluePoints ) / sizeof( SvxMSDffVertPair ),
4512     (SvxMSDffHandle*)mso_sptRibbonHandle, sizeof( mso_sptRibbonHandle ) / sizeof( SvxMSDffHandle )
4513 };
4514 
4515 static const SvxMSDffVertPair mso_sptVerticalScrollVert[] = // adjustment1 : 0 - 5400
4516 {
4517     { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, { 0 MSO_I, 12 MSO_I },
4518     { 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I },
4519     { 2 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 11 MSO_I }, { 5 MSO_I, 21600 },
4520 
4521     { 6 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 4 MSO_I, 1 MSO_I },
4522 
4523     { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I },
4524     { 9 MSO_I, 10 MSO_I }, { 1 MSO_I, 11 MSO_I },
4525 
4526     { 4 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I },
4527 
4528     { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
4529 
4530     { 4 MSO_I, 0 MSO_I },
4531     { 2 MSO_I, 0 MSO_I }
4532 };
4533 static const sal_uInt16 mso_sptVerticalScrollSegm[] =
4534 {
4535     0x4000, 0xa702, 0x0002, 0xa801, 0x0001, 0xa702, 0x0002, 0xa801, 0x6001, 0x8000,
4536     0x4000, 0xa801, 0xa702, 0x6000, 0x8000,
4537     0x4000, 0xa803, 0xa702, 0x6001, 0x8000,
4538     0x4000, 0xa701, 0x8000,
4539     0x4000, 0x0001, 0x8000,
4540     0x4000, 0x0001, 0x8000
4541 };
4542 static const SvxMSDffCalculationData mso_sptScrollCalc[] =
4543 {
4544     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
4545     { 0x2001, { 0x400, 1, 2 } },
4546     { 0xa000, { DFF_Prop_geoRight, 0, 0x401 } },
4547     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
4548     { 0x6000, { 0x400, 0x401, 0 } },
4549     { 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
4550     { 0x2001, { 0x400, 2, 1 } },
4551     { 0x2001, { 0x401, 1, 2 } },
4552     { 0x6000, { 0x400, 0x407, 0 } },
4553     { 0x6000, { 0x401, 0x407, 0 } },
4554     { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } },
4555     { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },
4556     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
4557     { 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
4558 };
4559 static const SvxMSDffTextRectangles mso_sptScrollTextRect[] =
4560 {
4561     { { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 12 MSO_I } }
4562 };
4563 static const SvxMSDffHandle mso_sptVerticalScrollHandle[] =
4564 {
4565     {   MSDFF_HANDLE_FLAGS_RANGE,
4566         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
4567 };
4568 static const mso_CustomShape msoVerticalScroll =
4569 {
4570     (SvxMSDffVertPair*)mso_sptVerticalScrollVert, sizeof( mso_sptVerticalScrollVert ) / sizeof( SvxMSDffVertPair ),
4571     (sal_uInt16*)mso_sptVerticalScrollSegm, sizeof( mso_sptVerticalScrollSegm ) >> 1,
4572     (SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4573     (sal_Int32*)mso_sptDefault2700,
4574     (SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4575     21600, 21600,
4576     11000, 10800,
4577     NULL, 0,
4578     (SvxMSDffHandle*)mso_sptVerticalScrollHandle, sizeof( mso_sptVerticalScrollHandle ) / sizeof( SvxMSDffHandle )
4579 };
4580 static const SvxMSDffVertPair mso_sptHorizontalScrollVert[] =   // adjustment1 : 0 - 5400
4581 {
4582     { 0, 4 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 1 MSO_I },
4583     { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 13 MSO_I }, { 2 MSO_I, 12 MSO_I },
4584     { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I },
4585 
4586     { 1 MSO_I, 4 MSO_I }, { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 6 MSO_I },
4587 
4588     { 2 MSO_I, 1 MSO_I }, { 3 MSO_I, 9 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 },
4589     { 21600, 1 MSO_I }, { 2 MSO_I, 0 MSO_I },
4590 
4591     { 1 MSO_I, 6 MSO_I },
4592     { 0, 4 MSO_I },
4593 
4594     { 2 MSO_I, 0 MSO_I },
4595     { 3 MSO_I, 0 MSO_I },
4596 
4597     { 0 MSO_I, 4 MSO_I },
4598     { 0 MSO_I, 11 MSO_I }
4599 };
4600 static const sal_uInt16 mso_sptHorizontalScrollSegm[] =
4601 {
4602     0x4000, 0xa801, 0x0002, 0xa802, 0x0001, 0xa801, 0x0002, 0xa802, 0x6001, 0x8000,
4603     0x4000, 0xa803, 0x6000, 0x8000,
4604     0x4000, 0xa803, 0xa702, 0x6000, 0x8000,
4605     0x4000, 0xa701, 0x8000,
4606     0x4000, 0x0001, 0x8000,
4607     0x4000, 0x0001, 0x8000
4608 };
4609 static const SvxMSDffHandle mso_sptHorizontalScrollHandle[] =
4610 {
4611     {   MSDFF_HANDLE_FLAGS_RANGE,
4612         0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
4613 };
4614 static const mso_CustomShape msoHorizontalScroll =
4615 {
4616     (SvxMSDffVertPair*)mso_sptHorizontalScrollVert, sizeof( mso_sptHorizontalScrollVert ) / sizeof( SvxMSDffVertPair ),
4617     (sal_uInt16*)mso_sptHorizontalScrollSegm, sizeof( mso_sptHorizontalScrollSegm ) >> 1,
4618     (SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4619     (sal_Int32*)mso_sptDefault2700,
4620     (SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4621     21600, 21600,
4622     10800, 11000,
4623     NULL, 0,
4624     (SvxMSDffHandle*)mso_sptHorizontalScrollHandle, sizeof( mso_sptHorizontalScrollHandle ) / sizeof( SvxMSDffHandle )
4625 };
4626 
4627 static const SvxMSDffVertPair mso_sptFlowChartProcessVert[] =
4628 {
4629     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
4630 };
4631 static const mso_CustomShape msoFlowChartProcess =
4632 {
4633     (SvxMSDffVertPair*)mso_sptFlowChartProcessVert, sizeof( mso_sptFlowChartProcessVert ) / sizeof( SvxMSDffVertPair ),
4634     NULL, 0,
4635     NULL, 0,
4636     NULL,
4637     NULL, 0,
4638     21600, 21600,
4639     0x80000000, 0x80000000,
4640     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4641     NULL, 0     // handles
4642 };
4643 
4644 static const SvxMSDffVertPair mso_sptFlowChartAlternateProcessVert[] =
4645 {
4646     { 0, 2 MSO_I }, { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 2 MSO_I },
4647     { 21600, 3 MSO_I }, { 1 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }
4648 };
4649 static const sal_uInt16 mso_sptFlowChartAlternateProcessSegm[] =
4650 {
4651     0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
4652 };
4653 static const SvxMSDffCalculationData mso_sptFlowChartAlternateProcessCalc[] =
4654 {
4655     { 0x2000, { DFF_Prop_geoLeft, 2540, 0 } },
4656     { 0x2000, { DFF_Prop_geoRight, 0, 2540 } },
4657     { 0x2000, { DFF_Prop_geoTop, 2540, 0 } },
4658     { 0x2000, { DFF_Prop_geoBottom, 0, 2540 } },
4659     { 0x2000, { DFF_Prop_geoLeft, 800, 0 } },
4660     { 0x2000, { DFF_Prop_geoRight, 0, 800 } },
4661     { 0x2000, { DFF_Prop_geoTop, 800, 0 } },
4662     { 0x2000, { DFF_Prop_geoBottom,0, 800 } }
4663 };
4664 static const SvxMSDffTextRectangles mso_sptFlowChartAlternateProcessTextRect[] =
4665 {
4666     { { 4 MSO_I, 6 MSO_I }, { 5 MSO_I, 7 MSO_I } }
4667 };
4668 static const mso_CustomShape msoFlowChartAlternateProcess =
4669 {
4670     (SvxMSDffVertPair*)mso_sptFlowChartAlternateProcessVert, sizeof( mso_sptFlowChartAlternateProcessVert ) / sizeof( SvxMSDffVertPair ),
4671     (sal_uInt16*)mso_sptFlowChartAlternateProcessSegm, sizeof( mso_sptFlowChartAlternateProcessSegm ) >> 1,
4672     (SvxMSDffCalculationData*)mso_sptFlowChartAlternateProcessCalc, sizeof( mso_sptFlowChartAlternateProcessCalc ) / sizeof( SvxMSDffCalculationData ),
4673     NULL,
4674     (SvxMSDffTextRectangles*)mso_sptFlowChartAlternateProcessTextRect, sizeof( mso_sptFlowChartAlternateProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
4675     21600, 21600,
4676     0x80000000, 0x80000000,
4677     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4678     NULL, 0     // handles
4679 };
4680 
4681 static const SvxMSDffVertPair mso_sptFlowChartDecisionVert[] =
4682 {
4683     { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }
4684 };
4685 static const SvxMSDffTextRectangles mso_sptFlowChartDecisionTextRect[] =
4686 {
4687     { { 5400, 5400 }, { 16200, 16200 } }
4688 };
4689 static const mso_CustomShape msoFlowChartDecision =
4690 {
4691     (SvxMSDffVertPair*)mso_sptFlowChartDecisionVert, sizeof( mso_sptFlowChartDecisionVert ) / sizeof( SvxMSDffVertPair ),
4692     NULL, 0,
4693     NULL, 0,
4694     NULL,
4695     (SvxMSDffTextRectangles*)mso_sptFlowChartDecisionTextRect, sizeof( mso_sptFlowChartDecisionTextRect ) / sizeof( SvxMSDffTextRectangles ),
4696     21600, 21600,
4697     0x80000000, 0x80000000,
4698     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4699     NULL, 0     // handles
4700 };
4701 
4702 static const SvxMSDffVertPair mso_sptFlowChartInputOutputVert[] =
4703 {
4704     { 4230, 0 }, { 21600, 0 }, { 17370, 21600 }, { 0, 21600 }, { 4230, 0 }
4705 };
4706 static const SvxMSDffTextRectangles mso_sptFlowChartInputOutputTextRect[] =
4707 {
4708     { { 4230, 0 }, { 17370, 21600 } }
4709 };
4710 static const SvxMSDffVertPair mso_sptFlowChartInputOutputGluePoints[] =
4711 {
4712     { 12960, 0 }, { 10800, 0 }, { 2160, 10800 }, { 8600, 21600 }, { 10800, 21600 }, { 19400, 10800 }
4713 };
4714 static const mso_CustomShape msoFlowChartInputOutput =
4715 {
4716     (SvxMSDffVertPair*)mso_sptFlowChartInputOutputVert, sizeof( mso_sptFlowChartInputOutputVert ) / sizeof( SvxMSDffVertPair ),
4717     NULL, 0,
4718     NULL, 0,
4719     NULL,
4720     (SvxMSDffTextRectangles*)mso_sptFlowChartInputOutputTextRect, sizeof( mso_sptFlowChartInputOutputTextRect ) / sizeof( SvxMSDffTextRectangles ),
4721     21600, 21600,
4722     0x80000000, 0x80000000,
4723     (SvxMSDffVertPair*)mso_sptFlowChartInputOutputGluePoints, sizeof( mso_sptFlowChartInputOutputGluePoints ) / sizeof( SvxMSDffVertPair ),
4724     NULL, 0     // handles
4725 };
4726 
4727 static const SvxMSDffVertPair mso_sptFlowChartPredefinedProcessVert[] =
4728 {
4729     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
4730 
4731     { 2540, 0 }, { 2540, 21600 },
4732 
4733     { 21600 - 2540, 0 }, { 21600 - 2540, 21600 }
4734 };
4735 static const sal_uInt16 mso_sptFlowChartPredefinedProcessSegm[] =
4736 {
4737     0x4000, 0x0003, 0x6000, 0x8000,
4738     0x4000, 0x0001, 0x8000,
4739     0x4000, 0x0001, 0x8000
4740 };
4741 static const SvxMSDffTextRectangles mso_sptFlowChartPredefinedProcessTextRect[] =
4742 {
4743     { { 2540, 0 }, { 21600 - 2540, 21600 } }
4744 };
4745 static const mso_CustomShape msoFlowChartPredefinedProcess =
4746 {
4747     (SvxMSDffVertPair*)mso_sptFlowChartPredefinedProcessVert, sizeof( mso_sptFlowChartPredefinedProcessVert ) / sizeof( SvxMSDffVertPair ),
4748     (sal_uInt16*)mso_sptFlowChartPredefinedProcessSegm, sizeof( mso_sptFlowChartPredefinedProcessSegm ) >> 1,
4749     NULL, 0,
4750     NULL,
4751     (SvxMSDffTextRectangles*)mso_sptFlowChartPredefinedProcessTextRect, sizeof( mso_sptFlowChartPredefinedProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
4752     21600, 21600,
4753     0x80000000, 0x80000000,
4754     NULL, 0,
4755     NULL, 0     // handles
4756 };
4757 
4758 static const SvxMSDffVertPair mso_sptFlowChartInternalStorageVert[] =
4759 {
4760     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
4761 
4762     { 4230, 0 }, { 4230, 21600 },
4763 
4764     { 0, 4230 }, { 21600, 4230 }
4765 };
4766 static const sal_uInt16 mso_sptFlowChartInternalStorageSegm[] =
4767 {
4768     0x4000, 0x0003, 0x6000, 0x8000,
4769     0x4000, 0x0001, 0x8000,
4770     0x4000, 0x0001, 0x8000
4771 };
4772 static const SvxMSDffTextRectangles mso_sptFlowChartInternalStorageTextRect[] =
4773 {
4774     { { 4230, 4230 }, { 21600, 21600 } }
4775 };
4776 static const mso_CustomShape msoFlowChartInternalStorage =
4777 {
4778     (SvxMSDffVertPair*)mso_sptFlowChartInternalStorageVert, sizeof( mso_sptFlowChartInternalStorageVert ) / sizeof( SvxMSDffVertPair ),
4779     (sal_uInt16*)mso_sptFlowChartInternalStorageSegm, sizeof( mso_sptFlowChartInternalStorageSegm ) >> 1,
4780     NULL, 0,
4781     NULL,
4782     (SvxMSDffTextRectangles*)mso_sptFlowChartInternalStorageTextRect, sizeof( mso_sptFlowChartInternalStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
4783     21600, 21600,
4784     0x80000000, 0x80000000,
4785     NULL, 0,
4786     NULL, 0     // handles
4787 };
4788 
4789 static const SvxMSDffVertPair mso_sptFlowChartDocumentVert[] =
4790 {
4791     { 0, 0 }, { 21600, 0 }, { 21600, 17360 },
4792     { 13050, 17220 }, { 13340, 20770 }, { 5620, 21600 },    // ccp
4793     { 2860, 21100 }, { 1850, 20700 }, { 0,  20120 }         // ccp
4794 };
4795 static const sal_uInt16 mso_sptFlowChartDocumentSegm[] =
4796 {
4797     0x4000, 0x0002, 0x2002, 0x6000, 0x8000
4798 };
4799 static const SvxMSDffTextRectangles mso_sptFlowChartDocumentTextRect[] =
4800 {
4801     { { 0, 0 }, { 21600, 17360 } }
4802 };
4803 static const SvxMSDffVertPair mso_sptFlowChartDocumentGluePoints[] =
4804 {
4805     { 10800, 0 }, { 0, 10800 }, { 10800, 20320 }, { 21600, 10800 }
4806 };
4807 static const mso_CustomShape msoFlowChartDocument =
4808 {
4809     (SvxMSDffVertPair*)mso_sptFlowChartDocumentVert, sizeof( mso_sptFlowChartDocumentVert ) / sizeof( SvxMSDffVertPair ),
4810     (sal_uInt16*)mso_sptFlowChartDocumentSegm, sizeof( mso_sptFlowChartDocumentSegm ) >> 1,
4811     NULL, 0,
4812     NULL,
4813     (SvxMSDffTextRectangles*)mso_sptFlowChartDocumentTextRect, sizeof( mso_sptFlowChartDocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
4814     21600, 21600,
4815     0x80000000, 0x80000000,
4816     (SvxMSDffVertPair*)mso_sptFlowChartDocumentGluePoints, sizeof( mso_sptFlowChartDocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
4817     NULL, 0     // handles
4818 };
4819 
4820 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentVert[] =
4821 {
4822     { 0, 3600 }, { 1500, 3600 }, { 1500, 1800 }, { 3000, 1800 },
4823     { 3000, 0 }, { 21600, 0 }, { 21600, 14409 }, { 21600 - 1500, 14409 },
4824     { 21600 - 1500, 14409 + 1800 }, { 21600 - 3000, 14409 + 1800 }, { 21600 - 3000, 14409 + 3600 },
4825     { 11610, 14293 + 3600 }, { 11472, 17239 + 3600 }, { 4833, 17928 + 3600 },                       // ccp
4826     { 2450, 17513 + 3600 }, { 1591, 17181 + 3600 }, { 0, 16700 + 3600 },                            // ccp
4827 
4828     { 1500, 3600 }, { 21600 - 3000, 3600 }, { 21600 - 3000, 14409 + 1800 },
4829 
4830     { 3000, 1800 }, { 21600 - 1500, 1800 }, { 21600 - 1500, 14409 }
4831 };
4832 static const sal_uInt16 mso_sptFlowChartMultidocumentSegm[] =
4833 {
4834     0x4000, 0x000a, 0x2002, 0x6000, 0x8000,
4835     0x4000, 0xaa00, 0x0002, 0x8000,         // NO FILL
4836     0x4000, 0xaa00, 0x0002, 0x8000          // NO FILL
4837 };
4838 static const SvxMSDffTextRectangles mso_sptFlowChartMultidocumentTextRect[] =
4839 {
4840     { { 0, 3600 }, { 21600 - 3000, 14409 + 3600 } }
4841 };
4842 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentGluePoints[] =
4843 {
4844     { 10800, 0 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
4845 };
4846 static const mso_CustomShape msoFlowChartMultidocument =
4847 {
4848     (SvxMSDffVertPair*)mso_sptFlowChartMultidocumentVert, sizeof( mso_sptFlowChartMultidocumentVert ) / sizeof( SvxMSDffVertPair ),
4849     (sal_uInt16*)mso_sptFlowChartMultidocumentSegm, sizeof( mso_sptFlowChartMultidocumentSegm ) >> 1,
4850     NULL, 0,
4851     NULL,
4852     (SvxMSDffTextRectangles*)mso_sptFlowChartMultidocumentTextRect, sizeof( mso_sptFlowChartMultidocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
4853     21600, 21600,
4854     0x80000000, 0x80000000,
4855     (SvxMSDffVertPair*)mso_sptFlowChartMultidocumentGluePoints, sizeof( mso_sptFlowChartMultidocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
4856     NULL, 0     // handles
4857 };
4858 
4859 static const SvxMSDffVertPair mso_sptFlowChartTerminatorVert[] =
4860 {
4861     { 3470, 21600 }, { 0, 10800 }, { 3470, 0 }, { 18130, 0 },
4862     { 21600, 10800 }, { 18130, 21600 }
4863 };
4864 static const sal_uInt16 mso_sptFlowChartTerminatorSegm[] =
4865 {
4866     0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
4867 };
4868 static const SvxMSDffTextRectangles mso_sptFlowChartTerminatorTextRect[] =
4869 {
4870     { { 1060, 3180 }, { 20540, 18420 } }
4871 };
4872 static const mso_CustomShape msoFlowChartTerminator =
4873 {
4874     (SvxMSDffVertPair*)mso_sptFlowChartTerminatorVert, sizeof( mso_sptFlowChartTerminatorVert ) / sizeof( SvxMSDffVertPair ),
4875     (sal_uInt16*)mso_sptFlowChartTerminatorSegm, sizeof( mso_sptFlowChartTerminatorSegm ) >> 1,
4876     NULL, 0,
4877     NULL,
4878     (SvxMSDffTextRectangles*)mso_sptFlowChartTerminatorTextRect, sizeof( mso_sptFlowChartTerminatorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4879     21600, 21600,
4880     0x80000000, 0x80000000,
4881     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4882     NULL, 0     // handles
4883 };
4884 
4885 static const SvxMSDffVertPair mso_sptFlowChartPreparationVert[] =
4886 {
4887     { 4350, 0 }, { 17250, 0 }, { 21600, 10800 }, { 17250, 21600 },
4888     { 4350, 21600 }, { 0, 10800 }, { 4350, 0 }
4889 };
4890 static const SvxMSDffTextRectangles mso_sptFlowChartPreparationTextRect[] =
4891 {
4892     { { 4350, 0 }, { 17250, 21600 } }
4893 };
4894 static const mso_CustomShape msoFlowChartPreparation =
4895 {
4896     (SvxMSDffVertPair*)mso_sptFlowChartPreparationVert, sizeof( mso_sptFlowChartPreparationVert ) / sizeof( SvxMSDffVertPair ),
4897     NULL, 0,
4898     NULL, 0,
4899     NULL,
4900     (SvxMSDffTextRectangles*)mso_sptFlowChartPreparationTextRect, sizeof( mso_sptFlowChartPreparationTextRect ) / sizeof( SvxMSDffTextRectangles ),
4901     21600, 21600,
4902     0x80000000, 0x80000000,
4903     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4904     NULL, 0     // handles
4905 };
4906 
4907 static const SvxMSDffVertPair mso_sptFlowChartManualInputVert[] =
4908 {
4909     { 0, 4300 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 4300 }
4910 };
4911 static const SvxMSDffTextRectangles mso_sptFlowChartManualInputTextRect[] =
4912 {
4913     { { 0, 4300 }, { 21600, 21600 } }
4914 };
4915 static const SvxMSDffVertPair mso_sptFlowChartManualInputGluePoints[] =
4916 {
4917     { 10800, 2150 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
4918 };
4919 static const mso_CustomShape msoFlowChartManualInput =
4920 {
4921     (SvxMSDffVertPair*)mso_sptFlowChartManualInputVert, sizeof( mso_sptFlowChartManualInputVert ) / sizeof( SvxMSDffVertPair ),
4922     NULL, 0,
4923     NULL, 0,
4924     NULL,
4925     (SvxMSDffTextRectangles*)mso_sptFlowChartManualInputTextRect, sizeof( mso_sptFlowChartManualInputTextRect ) / sizeof( SvxMSDffTextRectangles ),
4926     21600, 21600,
4927     0x80000000, 0x80000000,
4928     (SvxMSDffVertPair*)mso_sptFlowChartManualInputGluePoints, sizeof( mso_sptFlowChartManualInputGluePoints ) / sizeof( SvxMSDffVertPair ),
4929     NULL, 0     // handles
4930 };
4931 
4932 static const SvxMSDffVertPair mso_sptFlowChartManualOperationVert[] =
4933 {
4934     { 0, 0 }, { 21600, 0 }, { 17250, 21600 }, { 4350, 21600 }, { 0, 0 }
4935 };
4936 static const SvxMSDffTextRectangles mso_sptFlowChartManualOperationTextRect[] =
4937 {
4938     { { 4350, 0 }, { 17250, 21600 } }
4939 };
4940 static const SvxMSDffVertPair mso_sptFlowChartManualOperationGluePoints[] =
4941 {
4942     { 10800, 0 }, { 2160, 10800 }, { 10800, 21600 }, { 19440, 10800 }
4943 };
4944 static const mso_CustomShape msoFlowChartManualOperation =
4945 {
4946     (SvxMSDffVertPair*)mso_sptFlowChartManualOperationVert, sizeof( mso_sptFlowChartManualOperationVert ) / sizeof( SvxMSDffVertPair ),
4947     NULL, 0,
4948     NULL, 0,
4949     NULL,
4950     (SvxMSDffTextRectangles*)mso_sptFlowChartManualOperationTextRect, sizeof( mso_sptFlowChartManualOperationTextRect ) / sizeof( SvxMSDffTextRectangles ),
4951     21600, 21600,
4952     0x80000000, 0x80000000,
4953     (SvxMSDffVertPair*)mso_sptFlowChartManualOperationGluePoints, sizeof( mso_sptFlowChartManualOperationGluePoints ) / sizeof( SvxMSDffVertPair ),
4954     NULL, 0     // handles
4955 };
4956 
4957 static const SvxMSDffVertPair mso_sptFlowChartConnectorVert[] =
4958 {
4959     { 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
4960 };
4961 static const sal_uInt16 mso_sptFlowChartConnectorSegm[] =
4962 {
4963     0xa203, 0x6000, 0x8000
4964 };
4965 static const SvxMSDffTextRectangles mso_sptFlowChartConnectorTextRect[] =
4966 {
4967     { { 3180, 3180 }, { 18420, 18420 } }
4968 };
4969 static const mso_CustomShape msoFlowChartConnector =
4970 {
4971     (SvxMSDffVertPair*)mso_sptFlowChartConnectorVert, sizeof( mso_sptFlowChartConnectorVert ) / sizeof( SvxMSDffVertPair ),
4972     (sal_uInt16*)mso_sptFlowChartConnectorSegm, sizeof( mso_sptFlowChartConnectorSegm ) >> 1,
4973     NULL, 0,
4974     NULL,
4975     (SvxMSDffTextRectangles*)mso_sptFlowChartConnectorTextRect, sizeof( mso_sptFlowChartConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4976     21600, 21600,
4977     0x80000000, 0x80000000,
4978     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
4979     NULL, 0     // handles
4980 };
4981 
4982 static const SvxMSDffVertPair mso_sptFlowChartOffpageConnectorVert[] =
4983 {
4984     { 0, 0 }, { 21600, 0 }, { 21600, 17150 }, { 10800, 21600 },
4985     { 0, 17150 }, { 0, 0 }
4986 };
4987 static const SvxMSDffTextRectangles mso_sptFlowChartOffpageConnectorTextRect[] =
4988 {
4989     { { 0, 0 }, { 21600, 17150 } }
4990 };
4991 static const mso_CustomShape msoFlowChartOffpageConnector =
4992 {
4993     (SvxMSDffVertPair*)mso_sptFlowChartOffpageConnectorVert, sizeof( mso_sptFlowChartOffpageConnectorVert ) / sizeof( SvxMSDffVertPair ),
4994     NULL, 0,
4995     NULL, 0,
4996     NULL,
4997     (SvxMSDffTextRectangles*)mso_sptFlowChartOffpageConnectorTextRect, sizeof( mso_sptFlowChartOffpageConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
4998     21600, 21600,
4999     0x80000000, 0x80000000,
5000     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5001     NULL, 0     // handles
5002 };
5003 
5004 static const SvxMSDffVertPair mso_sptFlowChartPunchedCardVert[] =
5005 {
5006     { 4300, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5007     { 0, 4300 }, { 4300, 0 }
5008 };
5009 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedCardTextRect[] =
5010 {
5011     { { 0, 4300 }, { 21600, 21600 } }
5012 };
5013 static const mso_CustomShape msoFlowChartPunchedCard =
5014 {
5015     (SvxMSDffVertPair*)mso_sptFlowChartPunchedCardVert, sizeof( mso_sptFlowChartPunchedCardVert ) / sizeof( SvxMSDffVertPair ),
5016     NULL, 0,
5017     NULL, 0,
5018     NULL,
5019     (SvxMSDffTextRectangles*)mso_sptFlowChartPunchedCardTextRect, sizeof( mso_sptFlowChartPunchedCardTextRect ) / sizeof( SvxMSDffTextRectangles ),
5020     21600, 21600,
5021     0x80000000, 0x80000000,
5022     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5023     NULL, 0     // handles
5024 };
5025 
5026 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeVert[] =
5027 {
5028     { 0, 2230 },                                            // p
5029     { 820, 3990 }, { 3410, 3980 }, { 5370, 4360 },          // ccp
5030     { 7430, 4030 }, { 10110, 3890 }, { 10690, 2270 },       // ccp
5031     { 11440, 300 }, { 14200, 160 }, { 16150, 0 },           // ccp
5032     { 18670, 170 }, {  20690, 390 }, { 21600, 2230 },       // ccp
5033     { 21600, 19420 },                                       // p
5034     { 20640, 17510 }, { 18320, 17490 }, { 16140, 17240 },   // ccp
5035     { 14710, 17370 }, { 11310, 17510 }, { 10770, 19430 },   // ccp
5036     { 10150, 21150 }, { 7380, 21290 }, { 5290, 21600 },     // ccp
5037     { 3220, 21250 }, { 610, 21130 }, { 0, 19420 }           // ccp
5038 };
5039 static const sal_uInt16 mso_sptFlowChartPunchedTapeSegm[] =
5040 {
5041     0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000
5042 };
5043 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedTapeTextRect[] =
5044 {
5045     { { 0, 4360 }, { 21600, 17240 } }
5046 };
5047 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeGluePoints[] =
5048 {
5049     { 10800, 2020 }, { 0, 10800 }, { 10800, 19320 }, { 21600, 10800 }
5050 };
5051 static const mso_CustomShape msoFlowChartPunchedTape =
5052 {
5053     (SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeVert, sizeof( mso_sptFlowChartPunchedTapeVert ) / sizeof( SvxMSDffVertPair ),
5054     (sal_uInt16*)mso_sptFlowChartPunchedTapeSegm, sizeof( mso_sptFlowChartPunchedTapeSegm ) >> 1,
5055     NULL, 0,
5056     NULL,
5057     (SvxMSDffTextRectangles*)mso_sptFlowChartPunchedTapeTextRect, sizeof( mso_sptFlowChartPunchedTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5058     21600, 21600,
5059     0x80000000, 0x80000000,
5060     (SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeGluePoints, sizeof( mso_sptFlowChartPunchedTapeGluePoints ) / sizeof( SvxMSDffVertPair ),
5061     NULL, 0     // handles
5062 };
5063 
5064 static const SvxMSDffVertPair mso_sptFlowChartSummingJunctionVert[] =
5065 {
5066     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5067 
5068     { 3100, 3100 },
5069     { 18500, 18500 },
5070 
5071     { 3100, 18500 },
5072     { 18500, 3100 }
5073 };
5074 static const sal_uInt16 mso_sptFlowChartSummingJunctionSegm[] =
5075 {
5076     0xa203, 0x6000, 0x8000,
5077     0x4000, 0x0001, 0x8000,
5078     0x4000, 0x0001, 0x8000
5079 };
5080 static const SvxMSDffTextRectangles mso_sptFlowChartSummingJunctionTextRect[] =
5081 {
5082     { { 3100, 3100 }, { 18500, 18500 } }
5083 };
5084 static const mso_CustomShape msoFlowChartSummingJunction =
5085 {
5086     (SvxMSDffVertPair*)mso_sptFlowChartSummingJunctionVert, sizeof( mso_sptFlowChartSummingJunctionVert ) / sizeof( SvxMSDffVertPair ),
5087     (sal_uInt16*)mso_sptFlowChartSummingJunctionSegm, sizeof( mso_sptFlowChartSummingJunctionSegm ) >> 1,
5088     NULL, 0,
5089     NULL,
5090     (SvxMSDffTextRectangles*)mso_sptFlowChartSummingJunctionTextRect, sizeof( mso_sptFlowChartSummingJunctionTextRect ) / sizeof( SvxMSDffTextRectangles ),
5091     21600, 21600,
5092     0x80000000, 0x80000000,
5093     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5094     NULL, 0     // handles
5095 };
5096 
5097 static const SvxMSDffVertPair mso_sptFlowChartOrVert[] =
5098 {
5099     { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5100 
5101     { 0, 10800 }, { 21600, 10800 },
5102 
5103     { 10800, 0 }, { 10800, 21600 }
5104 };
5105 static const sal_uInt16 mso_sptFlowChartOrSegm[] =
5106 {
5107     0xa203, 0x6000, 0x8000,
5108     0x4000, 0x0001, 0x8000,
5109     0x4000, 0x0001, 0x8000
5110 };
5111 static const SvxMSDffTextRectangles mso_sptFlowChartOrTextRect[] =
5112 {
5113     { { 3100, 3100 }, { 18500, 18500 } }
5114 };
5115 static const mso_CustomShape msoFlowChartOr =
5116 {
5117     (SvxMSDffVertPair*)mso_sptFlowChartOrVert, sizeof( mso_sptFlowChartOrVert ) / sizeof( SvxMSDffVertPair ),
5118     (sal_uInt16*)mso_sptFlowChartOrSegm, sizeof( mso_sptFlowChartOrSegm ) >> 1,
5119     NULL, 0,
5120     NULL,
5121     (SvxMSDffTextRectangles*)mso_sptFlowChartOrTextRect, sizeof( mso_sptFlowChartOrTextRect ) / sizeof( SvxMSDffTextRectangles ),
5122     21600, 21600,
5123     0x80000000, 0x80000000,
5124     (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5125     NULL, 0     // handles
5126 };
5127 
5128 static const SvxMSDffVertPair mso_sptFlowChartCollateVert[] =
5129 {
5130     { 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 21600, 0 }, { 0, 0 }
5131 };
5132 static const SvxMSDffTextRectangles mso_sptFlowChartCollateTextRect[] =
5133 {
5134     { { 5400, 5400 }, { 16200, 16200 } }
5135 };
5136 static const SvxMSDffVertPair mso_sptFlowChartCollateGluePoints[] =
5137 {
5138     { 10800, 0 }, { 10800, 10800 }, { 10800, 21600 }
5139 };
5140 static const mso_CustomShape msoFlowChartCollate =
5141 {
5142     (SvxMSDffVertPair*)mso_sptFlowChartCollateVert, sizeof( mso_sptFlowChartCollateVert ) / sizeof( SvxMSDffVertPair ),
5143     NULL, 0,
5144     NULL, 0,
5145     NULL,
5146     (SvxMSDffTextRectangles*)mso_sptFlowChartCollateTextRect, sizeof( mso_sptFlowChartCollateTextRect ) / sizeof( SvxMSDffTextRectangles ),
5147     21600, 21600,
5148     0x80000000, 0x80000000,
5149     (SvxMSDffVertPair*)mso_sptFlowChartCollateGluePoints, sizeof( mso_sptFlowChartCollateGluePoints ) / sizeof( SvxMSDffVertPair ),
5150     NULL, 0     // handles
5151 };
5152 
5153 static const SvxMSDffVertPair mso_sptFlowChartSortVert[] =
5154 {
5155     { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 },
5156 
5157     { 0, 10800 }, { 21600, 10800 }
5158 };
5159 static const sal_uInt16 mso_sptFlowChartSortSegm[] =
5160 {
5161     0x4000, 0x0003, 0x6000, 0x8000,
5162     0x4000, 0x0001, 0x8000
5163 };
5164 static const SvxMSDffTextRectangles mso_sptFlowChartSortTextRect[] =
5165 {
5166     { { 5400, 5400 }, { 16200, 16200 } }
5167 };
5168 static const mso_CustomShape msoFlowChartSort =
5169 {
5170     (SvxMSDffVertPair*)mso_sptFlowChartSortVert, sizeof( mso_sptFlowChartSortVert ) / sizeof( SvxMSDffVertPair ),
5171     (sal_uInt16*)mso_sptFlowChartSortSegm, sizeof( mso_sptFlowChartSortSegm ) >> 1,
5172     NULL, 0,
5173     NULL,
5174     (SvxMSDffTextRectangles*)mso_sptFlowChartSortTextRect, sizeof( mso_sptFlowChartSortTextRect ) / sizeof( SvxMSDffTextRectangles ),
5175     21600, 21600,
5176     0x80000000, 0x80000000,
5177     NULL, 0,
5178     NULL, 0     // handles
5179 };
5180 
5181 static const SvxMSDffVertPair mso_sptFlowChartExtractVert[] =
5182 {
5183     { 10800, 0 }, { 21600, 21600 }, { 0, 21600 }, { 10800, 0 }
5184 };
5185 static const SvxMSDffTextRectangles mso_sptFlowChartExtractTextRect[] =
5186 {
5187     { { 5400, 10800 }, { 16200, 21600 } }
5188 };
5189 static const SvxMSDffVertPair mso_sptFlowChartExtractGluePoints[] =
5190 {
5191     { 10800, 0 }, { 5400, 10800 }, { 10800, 21600 }, { 16200, 10800 }
5192 };
5193 static const mso_CustomShape msoFlowChartExtract =
5194 {
5195     (SvxMSDffVertPair*)mso_sptFlowChartExtractVert, sizeof( mso_sptFlowChartExtractVert ) / sizeof( SvxMSDffVertPair ),
5196     NULL, 0,
5197     NULL, 0,
5198     NULL,
5199     (SvxMSDffTextRectangles*)mso_sptFlowChartExtractTextRect, sizeof( mso_sptFlowChartExtractTextRect ) / sizeof( SvxMSDffTextRectangles ),
5200     21600, 21600,
5201     0x80000000, 0x80000000,
5202     (SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5203     NULL, 0     // handles
5204 };
5205 
5206 static const SvxMSDffVertPair mso_sptFlowChartMergeVert[] =
5207 {
5208     { 0, 0 }, { 21600, 0 }, { 10800, 21600 }, { 0, 0 }
5209 };
5210 static const SvxMSDffTextRectangles mso_sptFlowChartMergeTextRect[] =
5211 {
5212     { { 5400, 0 }, { 16200, 10800 } }
5213 };
5214 static const mso_CustomShape msoFlowChartMerge =
5215 {
5216     (SvxMSDffVertPair*)mso_sptFlowChartMergeVert, sizeof( mso_sptFlowChartMergeVert ) / sizeof( SvxMSDffVertPair ),
5217     NULL, 0,
5218     NULL, 0,
5219     NULL,
5220     (SvxMSDffTextRectangles*)mso_sptFlowChartMergeTextRect, sizeof( mso_sptFlowChartMergeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5221     21600, 21600,
5222     0x80000000, 0x80000000,
5223     (SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5224     NULL, 0     // handles
5225 };
5226 
5227 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageVert[] =
5228 {
5229     { 3600, 21600 }, { 0, 10800 }, { 3600, 0 }, { 21600, 0 },
5230     { 18000, 10800 }, { 21600, 21600 }
5231 };
5232 static const sal_uInt16 mso_sptFlowChartOnlineStorageSegm[] =
5233 {
5234     0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
5235 };
5236 static const SvxMSDffTextRectangles mso_sptFlowChartOnlineStorageTextRect[] =
5237 {
5238     { { 3600, 0 }, { 18000, 21600 } }
5239 };
5240 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageGluePoints[] =
5241 {
5242     { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 18000, 10800 }
5243 };
5244 static const mso_CustomShape msoFlowChartOnlineStorage =
5245 {
5246     (SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageVert, sizeof( mso_sptFlowChartOnlineStorageVert ) / sizeof( SvxMSDffVertPair ),
5247     (sal_uInt16*)mso_sptFlowChartOnlineStorageSegm, sizeof( mso_sptFlowChartOnlineStorageSegm ) >> 1,
5248     NULL, 0,
5249     NULL,
5250     (SvxMSDffTextRectangles*)mso_sptFlowChartOnlineStorageTextRect, sizeof( mso_sptFlowChartOnlineStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
5251     21600, 21600,
5252     0x80000000, 0x80000000,
5253     (SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageGluePoints, sizeof( mso_sptFlowChartOnlineStorageGluePoints ) / sizeof( SvxMSDffVertPair ),
5254     NULL, 0     // handles
5255 };
5256 
5257 static const SvxMSDffVertPair mso_sptFlowChartDelayVert[] =
5258 {
5259     { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 21600 },
5260     { 0, 0 }
5261 };
5262 static const sal_uInt16 mso_sptFlowChartDelaySegm[] =
5263 {
5264     0x4000, 0xa702, 0x0002, 0x6000, 0x8000
5265 };
5266 static const SvxMSDffTextRectangles mso_sptFlowChartDelayTextRect[] =
5267 {
5268     { { 0, 3100 }, { 18500, 18500 } }
5269 };
5270 static const mso_CustomShape msoFlowChartDelay =
5271 {
5272     (SvxMSDffVertPair*)mso_sptFlowChartDelayVert, sizeof( mso_sptFlowChartDelayVert ) / sizeof( SvxMSDffVertPair ),
5273     (sal_uInt16*)mso_sptFlowChartDelaySegm, sizeof( mso_sptFlowChartDelaySegm ) >> 1,
5274     NULL, 0,
5275     NULL,
5276     (SvxMSDffTextRectangles*)mso_sptFlowChartDelayTextRect, sizeof( mso_sptFlowChartDelayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5277     21600, 21600,
5278     0x80000000, 0x80000000,
5279     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5280     NULL, 0     // handles
5281 };
5282 
5283 static const SvxMSDffVertPair mso_sptFlowChartMagneticTapeVert[] =
5284 {
5285     { 20980, 18150 }, { 20980, 21600 }, { 10670, 21600 },
5286     { 4770, 21540 }, { 0, 16720 }, { 0, 10800 },            // ccp
5287     { 0, 4840 }, { 4840, 0 }, { 10800, 0 },                 // ccp
5288     { 16740, 0 }, { 21600, 4840 }, { 21600, 10800 },        // ccp
5289     { 21600, 13520 }, { 20550, 16160 }, { 18670, 18170 }    // ccp
5290 };
5291 static const sal_uInt16 mso_sptFlowChartMagneticTapeSegm[] =
5292 {
5293     0x4000, 0x0002, 0x2004, 0x6000, 0x8000
5294 };
5295 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticTapeTextRect[] =
5296 {
5297     { { 3100, 3100 }, { 18500, 18500 } }
5298 };
5299 static const mso_CustomShape msoFlowChartMagneticTape =
5300 {
5301     (SvxMSDffVertPair*)mso_sptFlowChartMagneticTapeVert, sizeof( mso_sptFlowChartMagneticTapeVert ) / sizeof( SvxMSDffVertPair ),
5302     (sal_uInt16*)mso_sptFlowChartMagneticTapeSegm, sizeof( mso_sptFlowChartMagneticTapeSegm ) >> 1,
5303     NULL, 0,
5304     NULL,
5305     (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticTapeTextRect, sizeof( mso_sptFlowChartMagneticTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5306     21600, 21600,
5307     0x80000000, 0x80000000,
5308     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5309     NULL, 0     // handles
5310 };
5311 
5312 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskVert[] =
5313 {
5314     { 0, 3400 }, { 10800, 0 }, { 21600, 3400 }, { 21600, 18200 },
5315     { 10800, 21600 }, { 0, 18200 },
5316 
5317     { 0, 3400 }, { 10800, 6800 }, { 21600, 3400 }
5318 };
5319 static const sal_uInt16 mso_sptFlowChartMagneticDiskSegm[] =
5320 {
5321     0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000,
5322     0x4000, 0xa802, 0x8000
5323 };
5324 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDiskTextRect[] =
5325 {
5326     { { 0, 6800 }, { 21600, 18200 } }
5327 };
5328 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskGluePoints[] =
5329 {
5330     { 10800, 6800 }, { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
5331 };
5332 static const mso_CustomShape msoFlowChartMagneticDisk =
5333 {
5334     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskVert, sizeof( mso_sptFlowChartMagneticDiskVert ) / sizeof( SvxMSDffVertPair ),
5335     (sal_uInt16*)mso_sptFlowChartMagneticDiskSegm, sizeof( mso_sptFlowChartMagneticDiskSegm ) >> 1,
5336     NULL, 0,
5337     NULL,
5338     (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDiskTextRect, sizeof( mso_sptFlowChartMagneticDiskTextRect ) / sizeof( SvxMSDffTextRectangles ),
5339     21600, 21600,
5340     0x80000000, 0x80000000,
5341     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskGluePoints, sizeof( mso_sptFlowChartMagneticDiskGluePoints ) / sizeof( SvxMSDffVertPair ),
5342     NULL, 0     // handles
5343 };
5344 
5345 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumVert[] =
5346 {
5347     { 18200, 0 }, { 21600, 10800 }, { 18200, 21600 }, { 3400, 21600 },
5348     { 0, 10800 }, { 3400, 0 },
5349 
5350     { 18200, 0 }, { 14800, 10800 }, { 18200, 21600 }
5351 };
5352 static const sal_uInt16 mso_sptFlowChartMagneticDrumSegm[] =
5353 {
5354     0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000,
5355     0x4000, 0xa702, 0x8000
5356 };
5357 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDrumTextRect[] =
5358 {
5359     { { 3400, 0 }, { 14800, 21600 } }
5360 };
5361 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumGluePoints[] =
5362 {
5363     { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 14800, 10800 }, { 21600, 10800 }
5364 };
5365 static const mso_CustomShape msoFlowChartMagneticDrum =
5366 {
5367     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumVert, sizeof( mso_sptFlowChartMagneticDrumVert ) / sizeof( SvxMSDffVertPair ),
5368     (sal_uInt16*)mso_sptFlowChartMagneticDrumSegm, sizeof( mso_sptFlowChartMagneticDrumSegm ) >> 1,
5369     NULL, 0,
5370     NULL,
5371     (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDrumTextRect, sizeof( mso_sptFlowChartMagneticDrumTextRect ) / sizeof( SvxMSDffTextRectangles ),
5372     21600, 21600,
5373     0x80000000, 0x80000000,
5374     (SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumGluePoints, sizeof( mso_sptFlowChartMagneticDrumGluePoints ) / sizeof( SvxMSDffVertPair ),
5375     NULL, 0     // handles
5376 };
5377 
5378 static const SvxMSDffVertPair mso_sptFlowChartDisplayVert[] =
5379 {
5380     { 3600, 0 }, { 17800, 0 }, { 21600, 10800 }, { 17800, 21600 },
5381     { 3600, 21600 }, { 0, 10800 }
5382 };
5383 static const sal_uInt16 mso_sptFlowChartDisplaySegm[] =
5384 {
5385     0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
5386 };
5387 static const SvxMSDffTextRectangles mso_sptFlowChartDisplayTextRect[] =
5388 {
5389     { { 3600, 0 }, { 17800, 21600 } }
5390 };
5391 static const mso_CustomShape msoFlowChartDisplay =
5392 {
5393     (SvxMSDffVertPair*)mso_sptFlowChartDisplayVert, sizeof( mso_sptFlowChartDisplayVert ) / sizeof( SvxMSDffVertPair ),
5394     (sal_uInt16*)mso_sptFlowChartDisplaySegm, sizeof( mso_sptFlowChartDisplaySegm ) >> 1,
5395     NULL, 0,
5396     NULL,
5397     (SvxMSDffTextRectangles*)mso_sptFlowChartDisplayTextRect, sizeof( mso_sptFlowChartDisplayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5398     21600, 21600,
5399     0x80000000, 0x80000000,
5400     (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5401     NULL, 0     // handles
5402 };
5403 
5404 static const SvxMSDffVertPair mso_sptWedgeRectCalloutVert[] =
5405 {
5406     { 0, 0 },
5407     { 0, 3590 }, { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5408     { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5409     { 0, 21600 },
5410     { 3590, 21600 }, { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5411     { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5412     { 21600, 21600 },
5413     { 21600, 18010 }, { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5414     { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5415     { 21600, 0 },
5416     { 18010, 0 }, { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5417     { 8970, 0 }, { 16 MSO_I, 17 MSO_I }, { 3590, 0 },
5418     { 0, 0 }
5419 };
5420 static const SvxMSDffCalculationData mso_sptWedgeRectCalloutCalc[] =
5421 {
5422     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },     //0x400
5423     { 0x2000, { DFF_Prop_adjust2Value, 0,10800 } },
5424     { 0x6006, { 0x412, DFF_Prop_adjustValue, 0 } },     //0x402
5425     { 0x6006, { 0x412, DFF_Prop_adjust2Value, 6280 } },
5426     { 0x6006, { 0x417, DFF_Prop_adjustValue, 0 } },     //0x404
5427     { 0x6006, { 0x417, DFF_Prop_adjust2Value, 15320 } },
5428     { 0x6006, { 0x41a, DFF_Prop_adjustValue, 6280 } },  //0x406
5429     { 0x6006, { 0x41a, DFF_Prop_adjust2Value, 21600 } },
5430     { 0x6006, { 0x41d, DFF_Prop_adjustValue, 15320 } }, //0x408
5431     { 0x6006, { 0x41d, DFF_Prop_adjust2Value, 21600 } },
5432     { 0x6006, { 0x420, DFF_Prop_adjustValue, 21600 } }, //0x40a
5433     { 0x6006, { 0x420, DFF_Prop_adjust2Value, 15320 } },
5434     { 0x6006, { 0x422, DFF_Prop_adjustValue, 21600 } }, //0x40c
5435     { 0x6006, { 0x422, DFF_Prop_adjust2Value, 6280 } },
5436     { 0x6006, { 0x424, DFF_Prop_adjustValue, 15320 } }, //0x40e
5437     { 0x6006, { 0x424, DFF_Prop_adjust2Value, 0 } },
5438     { 0x6006, { 0x426, DFF_Prop_adjustValue, 6280 } },  //0x410
5439     { 0x6006, { 0x426, DFF_Prop_adjust2Value, 0 } },
5440     { 0xa006, { DFF_Prop_adjustValue, -1, 0x413 } },    //0x412
5441     { 0xa006, { 0x401, -1, 0x416 } },
5442     { 0x2003, { 0x400, 0, 0 } },                        //0x414
5443     { 0x2003, { 0x401, 0, 0 } },
5444     { 0xa000, { 0x414, 0, 0x415 } },                    //0x416
5445     { 0xa006, { DFF_Prop_adjustValue, -1, 0x418 } },
5446     { 0x6006, { 0x401, 0x416, -1 } },                   //0x418
5447     { 0x2000, { DFF_Prop_adjust2Value, 0, 21600 } },
5448     { 0x6006, { 0x419, 0x41b, -1 } },                   //0x41a
5449     { 0xa006, { 0x400, -1, 0x41c } },
5450     { 0xa000, { 0x415, 0, 0x414 } },                    //0x41c
5451     { 0x6006, { 0x419, 0x41e, -1 } },
5452     { 0x6006, { 0x400, 0x41c, -1 } },                   //0x41e
5453     { 0x2000, { DFF_Prop_adjustValue, 0, 21600 } },
5454     { 0x6006, { 0x41f, 0x421, -1 } },                   //0x420
5455     { 0x6006, { 0x401, 0x416, -1 } },
5456     { 0x6006, { 0x41f, 0x423, -1 } },                   //0x422
5457     { 0xa006, { 0x401, -1, 0x416 } },
5458     { 0xa006, { DFF_Prop_adjust2Value, -1, 0x425 } },   //0x424
5459     { 0x6006, { 0x400, 0x41c, -1 } },
5460     { 0xa006, { DFF_Prop_adjust2Value, -1, 0x427 } },   //0x426
5461     { 0xa006, { 0x400, -1, 0x41c } },
5462     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },         //0x428
5463     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }
5464 };
5465 static const sal_Int32 mso_sptWedgeRectCalloutDefault[] =
5466 {
5467     2, 1400, 25920
5468 };
5469 static const SvxMSDffTextRectangles mso_sptWedgeRectCalloutTextRect[] =
5470 {
5471     { { 0, 0 }, { 21600, 21600 } }
5472 };
5473 static const SvxMSDffVertPair mso_sptWedgeRectCalloutGluePoints[] =
5474 {
5475     { 10800, 0 }, { 0, 10800 },  { 10800, 21600 }, { 21600, 10800 }, { 40 MSO_I, 41 MSO_I }
5476 };
5477 static const SvxMSDffHandle mso_sptCalloutHandle[] =
5478 {
5479     {
5480         0,
5481         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff
5482     }
5483 };
5484 static const mso_CustomShape msoWedgeRectCallout =
5485 {
5486     (SvxMSDffVertPair*)mso_sptWedgeRectCalloutVert, sizeof( mso_sptWedgeRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5487     NULL, 0,
5488     (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5489     (sal_Int32*)mso_sptWedgeRectCalloutDefault,
5490     (SvxMSDffTextRectangles*)mso_sptWedgeRectCalloutTextRect, sizeof( mso_sptWedgeRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5491     21600, 21600,
5492     0x80000000, 0x80000000,
5493     (SvxMSDffVertPair*)mso_sptWedgeRectCalloutGluePoints, sizeof( mso_sptWedgeRectCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5494     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5495 };
5496 static const SvxMSDffVertPair mso_sptWedgeRRectCalloutVert[] =
5497 {
5498     { 3590, 0 },
5499     { 0, 3590 },
5500     { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5501     { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5502     { 3590, 21600 },
5503     { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5504     { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5505     { 21600, 18010 },
5506     { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5507     { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5508     { 18010, 0 },
5509     { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5510     { 8970, 0 }, { 16 MSO_I, 17 MSO_I }
5511 };
5512 static const sal_uInt16 mso_sptWedgeRRectCalloutSegm[] =
5513 {
5514     0x4000, 0xa701, 0x0005, 0xa801, 0x0005, 0xa701, 0x0005, 0xa801, 0x0004, 0x6001, 0x8000
5515 };
5516 static const SvxMSDffTextRectangles mso_sptWedgeRRectCalloutTextRect[] =
5517 {
5518     { { 800, 800 }, { 20800, 20800 } }
5519 };
5520 static const mso_CustomShape msoWedgeRRectCallout =
5521 {
5522     (SvxMSDffVertPair*)mso_sptWedgeRRectCalloutVert, sizeof( mso_sptWedgeRRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5523     (sal_uInt16*)mso_sptWedgeRRectCalloutSegm, sizeof( mso_sptWedgeRRectCalloutSegm ) >> 1,
5524     (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5525     (sal_Int32*)mso_sptWedgeRectCalloutDefault,
5526     (SvxMSDffTextRectangles*)mso_sptWedgeRRectCalloutTextRect, sizeof( mso_sptWedgeRRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5527     21600, 21600,
5528     0x80000000, 0x80000000,
5529     NULL, 0,
5530     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5531 };
5532 static const SvxMSDffVertPair mso_sptBalloonVert[] =
5533 {
5534     { 3590, 0 },
5535     { 0, 3590 },
5536     { 0, 14460 },
5537     { 3590, 18050 },
5538     { 40 MSO_I, 21600 }, { 5420, 18050 },
5539     { 18010, 18050 },
5540     { 21600, 14460 },
5541     { 21600, 3590 },
5542     { 18010, 0 }
5543 };
5544 static const sal_uInt16 mso_sptBalloonSegm[] =
5545 {
5546     0x4000, 0xa701, 0x0001, 0xa801, 0x0003, 0xa701, 0x0001, 0xa801, 0x6001, 0x8000
5547 };
5548 static const SvxMSDffHandle mso_sptBalloonHandle[] =
5549 {
5550     {
5551         MSDFF_HANDLE_FLAGS_RANGE,
5552         0x100, 1, 10800, 10800, 0, 8990, 0x80000000, 0x7fffffff
5553     }
5554 };
5555 static const SvxMSDffTextRectangles mso_sptBalloonTextRect[] =
5556 {
5557     { { 800, 800 }, { 20800, 17250 } }
5558 };
5559 static const mso_CustomShape msoBalloon =
5560 {
5561     (SvxMSDffVertPair*)mso_sptBalloonVert, sizeof( mso_sptBalloonVert ) / sizeof( SvxMSDffVertPair ),
5562     (sal_uInt16*)mso_sptBalloonSegm, sizeof( mso_sptBalloonSegm ) >> 1,
5563     (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5564     (sal_Int32*)mso_sptWedgeRectCalloutDefault,
5565     (SvxMSDffTextRectangles*)mso_sptBalloonTextRect, sizeof( mso_sptBalloonTextRect ) / sizeof( SvxMSDffTextRectangles ),
5566     21600, 21600,
5567     0x80000000, 0x80000000,
5568     NULL, 0,
5569     (SvxMSDffHandle*)mso_sptBalloonHandle, sizeof( mso_sptBalloonHandle ) / sizeof( SvxMSDffHandle )        // handles
5570 };
5571 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutVert[] =
5572 {
5573     { 0, 0 }, { 21600, 21600 }, { 0x16 MSO_I, 0x17 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0xe MSO_I, 0xf MSO_I }
5574 };
5575 static const sal_uInt16 mso_sptWedgeEllipseCalloutSegm[] =
5576 {
5577     0xa504, 0x0001, 0x6001, 0x8000
5578 };
5579 static const SvxMSDffCalculationData mso_sptWedgeEllipseCalloutCalc[] =
5580 {
5581     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },     // 00 rad x
5582     { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },    // 01 rad y
5583     { 0x6001, { 0x400, 0x400, 1 } },                    // 02 rad x^2
5584     { 0x6001, { 0x401, 0x401, 1 } },                    // 03 rad y^2
5585     { 0x6000, { 0x402, 0x403, 0 } },                    // 04
5586     { 0x200d, { 0x404, 0, 0 } },                        // 05
5587     { 0x2000, { 0x405, 0, 10800 } },                    // 06 > 0 ? spur needs to be drawn : 10800
5588     { 0x6008, { 0x400, 0x401, 0 } },                    // 07 atan2 -> angle
5589     { 0x2000, { 0x407, 0, 10 } },                       // 08
5590     { 0x2000, { 0x407, 10, 0 } },                       // 09
5591     { 0x400a, { 10800, 0x407, 0 } },                    // 0a
5592     { 0x4009, { 10800, 0x407, 0 } },                    // 0b
5593     { 0x2000, { 0x40a, 10800, 0 } },                    // 0c
5594     { 0x2000, { 0x40b, 10800, 0 } },                    // 0d
5595     { 0xe006, { 0x406, DFF_Prop_adjustValue, 0x40c } }, // 0e
5596     { 0xe006, { 0x406, DFF_Prop_adjust2Value, 0x40d } },// 0f
5597     { 0x400a, { 10800, 0x408, 0 } },                    // 10
5598     { 0x4009, { 10800, 0x408, 0 } },                    // 11
5599     { 0x2000, { 0x410, 10800, 0 } },                    // 12
5600     { 0x2000, { 0x411, 10800, 0 } },                    // 13
5601     { 0x400a, { 10800, 0x409, 0 } },                    // 14
5602     { 0x4009, { 10800, 0x409, 0 } },                    // 15
5603     { 0x2000, { 0x414, 10800, 0 } },                    // 16
5604     { 0x2000, { 0x415, 10800, 0 } }                     // 17
5605 };
5606 static const sal_Int32 mso_sptWedgeEllipseCalloutDefault[] =
5607 {
5608     2, 1350, 25920
5609 };
5610 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutGluePoints[] =
5611 {
5612     { 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }, { 0xe MSO_I, 0xf MSO_I }
5613 };
5614 static const SvxMSDffTextRectangles mso_sptWedgeEllipseCalloutTextRect[] =
5615 {
5616     { { 3200, 3200 }, { 18400, 18400 } }
5617 };
5618 static const mso_CustomShape msoWedgeEllipseCallout =
5619 {
5620     (SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutVert, sizeof( mso_sptWedgeEllipseCalloutVert ) / sizeof( SvxMSDffVertPair ),
5621     (sal_uInt16*)mso_sptWedgeEllipseCalloutSegm, sizeof( mso_sptWedgeEllipseCalloutSegm ) >> 1,
5622     (SvxMSDffCalculationData*)mso_sptWedgeEllipseCalloutCalc, sizeof( mso_sptWedgeEllipseCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5623     (sal_Int32*)mso_sptWedgeEllipseCalloutDefault,
5624     (SvxMSDffTextRectangles*)mso_sptWedgeEllipseCalloutTextRect, sizeof( mso_sptWedgeEllipseCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5625     21600, 21600,
5626     0x80000000, 0x80000000,
5627     (SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutGluePoints, sizeof( mso_sptWedgeEllipseCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5628     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5629 };
5630 
5631 static const SvxMSDffVertPair mso_sptCloudCalloutVert[] =
5632 {
5633     { 1930,7160 },                                      // p
5634     { 1530,4490 }, { 3400,1970 }, { 5270,1970 },        // ccp
5635     { 5860,1950 }, { 6470,2210 }, { 6970,2600 },        // ccp
5636     { 7450,1390 }, { 8340,650 }, { 9340,650 },          // ccp
5637     { 10004,690 }, { 10710,1050 }, { 11210,1700 },      // ccp
5638     { 11570,630 }, { 12330,0 }, { 13150,0 },            // ccp
5639     { 13840,0 }, { 14470,460 }, { 14870,1160 },         // ccp
5640     { 15330,440 }, { 16020,0 }, { 16740,0 },            // ccp
5641     { 17910,0 }, { 18900,1130 }, { 19110,2710 },        // ccp
5642     { 20240,3150 }, { 21060,4580 }, { 21060,6220 },     // ccp
5643     { 21060,6720 }, { 21000,7200 }, { 20830,7660 },     // ccp
5644     { 21310,8460 }, { 21600,9450 }, { 21600,10460 },    // ccp
5645     { 21600,12750 }, { 20310,14680 }, { 18650,15010 },  // ccp
5646     { 18650,17200 }, { 17370,18920 }, { 15770,18920 },  // ccp
5647     { 15220,18920 }, { 14700,18710 }, { 14240,18310 },  // ccp
5648     { 13820,20240 }, { 12490,21600 }, { 11000,21600 },  // ccp
5649     { 9890,21600 }, { 8840,20790 }, { 8210,19510 },     // ccp
5650     { 7620,20000 }, { 7930,20290 }, { 6240,20290 },     // ccp
5651     { 4850,20290 }, { 3570,19280 }, { 2900,17640 },     // ccp
5652     { 1300,17600 }, { 480,16300 }, { 480,14660 },       // ccp
5653     { 480,13900 }, { 690,13210 }, { 1070,12640 },       // ccp
5654     { 380,12160 }, { 0,11210 }, { 0,10120 },            // ccp
5655     { 0,8590 }, { 840,7330 }, { 1930,7160 },            // ccp
5656 
5657     { 1930, 7160 }, { 1950, 7410 }, { 2040, 7690 }, { 2090, 7920 },         // pccp
5658     { 6970, 2600 }, { 7200, 2790 }, { 7480, 3050 }, { 7670, 3310 },         // pccp
5659     { 11210, 1700 }, { 11130, 1910 }, { 11080, 2160 }, { 11030, 2400 },     // pccp
5660     { 14870, 1160 }, { 14720, 1400 }, { 14640, 1720 }, { 14540, 2010 },     // pccp
5661     { 19110, 2710 }, { 19130, 2890 }, { 19230, 3290 }, { 19190, 3380 },     // pccp
5662     { 20830, 7660 }, { 20660, 8170 }, { 20430, 8620 }, { 20110, 8990 },     // pccp
5663     { 18660, 15010 }, { 18740, 14200 }, { 18280, 12200 }, { 17000, 11450 }, // pccp
5664     { 14240, 18310 }, { 14320, 17980 }, { 14350, 17680 }, { 14370, 17360 }, // pccp
5665     { 8220, 19510 }, { 8060, 19250 }, { 7960, 18950 }, { 7860, 18640 },     // pccp
5666     { 2900, 17640 }, { 3090, 17600 }, { 3280, 17540 }, { 3460, 17450 },     // pccp
5667     { 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 },     // pccp
5668 
5669     { 0x11 MSO_I, 0x12 MSO_I }, { 1800, 1800 }, { 0, 360 },                 // circ1
5670     { 0x13 MSO_I, 0x14 MSO_I }, { 1200, 1200 }, { 0, 360 },                 // circ2
5671     { 0xd MSO_I, 0xe MSO_I }, { 700, 700 }, { 0, 360 }                      // circ3
5672 };
5673 static const sal_uInt16 mso_sptCloudCalloutSegm[] =
5674 {
5675     0x4000, 0x2016, 0x6001, 0x8000,
5676     0x4000, 0x2001, 0xaa00, 0x8000,
5677     0x4000, 0x2001, 0xaa00, 0x8000,
5678     0x4000, 0x2001, 0xaa00, 0x8000,
5679     0x4000, 0x2001, 0xaa00, 0x8000,
5680     0x4000, 0x2001, 0xaa00, 0x8000,
5681     0x4000, 0x2001, 0xaa00, 0x8000,
5682     0x4000, 0x2001, 0xaa00, 0x8000,
5683     0x4000, 0x2001, 0xaa00, 0x8000,
5684     0x4000, 0x2001, 0xaa00, 0x8000,
5685     0x4000, 0x2001, 0xaa00, 0x8000,
5686     0x4000, 0x2001, 0xaa00, 0x8000,
5687     0xa203, 0x6001, 0x8000,
5688     0xa203, 0x6001, 0x8000,
5689     0xa203, 0x6001, 0x8000
5690 };
5691 static const SvxMSDffCalculationData mso_sptCloudCalloutCalc[] =
5692 {
5693     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
5694     { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },
5695     { 0x6008, { 0x400, 0x401, 0 } },
5696     { 0x400a, { 10800, 0x402, 0 } },                    // 3
5697     { 0x4009, { 10800, 0x402, 0 } },                    // 4
5698     { 0x2000, { 0x403, 10800, 0 } },                    // 5
5699     { 0x2000, { 0x404, 10800, 0 } },                    // 6
5700     { 0xa000, { DFF_Prop_adjustValue, 0, 0x405 } },     // 7
5701     { 0xa000, { DFF_Prop_adjust2Value,0, 0x406 } },     // 8
5702     { 0x2001, { 0x407, 1, 3 } },                        // 9
5703     { 0x2001, { 0x408, 1, 3 } },                        // 0xa
5704     { 0x2001, { 0x407, 2, 3 } },                        // 0xb
5705     { 0x2001, { 0x408, 2, 3 } },                        // 0xc
5706     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },         // 0xd
5707     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },        // 0xe
5708     { 0x2001, { 0x403, 1, 10800 / 900 } },              // 0xf  taking half x distance of the radius from the first bobble
5709     { 0x2001, { 0x404, 1, 10800 / 900 } },              // 0x10
5710     { 0xe000, { 0x409, 0x405, 0x40f } },                // 0x11
5711     { 0xe000, { 0x40a, 0x406, 0x410 } },                // 0x12
5712     { 0x6000, { 0x40b, 0x405, 0 } },                    // 0x13
5713     { 0x6000, { 0x40c, 0x406, 0 } }                     // 0x14
5714 };
5715 static const sal_Int32 mso_sptCloudCalloutDefault[] =
5716 {
5717     2, 1350, 25920
5718 };
5719 static const SvxMSDffTextRectangles mso_sptCloudCalloutTextRect[] =
5720 {
5721     { { 3000, 3320 }, { 17110, 17330 } }
5722 };
5723 static const mso_CustomShape msoCloudCallout =
5724 {
5725     (SvxMSDffVertPair*)mso_sptCloudCalloutVert, sizeof( mso_sptCloudCalloutVert ) / sizeof( SvxMSDffVertPair ),
5726     (sal_uInt16*)mso_sptCloudCalloutSegm, sizeof( mso_sptCloudCalloutSegm ) >> 1,
5727     (SvxMSDffCalculationData*)mso_sptCloudCalloutCalc, sizeof( mso_sptCloudCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5728     (sal_Int32*)mso_sptCloudCalloutDefault,
5729     (SvxMSDffTextRectangles*)mso_sptCloudCalloutTextRect, sizeof( mso_sptCloudCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5730     21600, 21600,
5731     0x80000000, 0x80000000,
5732     NULL, 0,
5733     (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )        // handles
5734 };
5735 
5736 static const SvxMSDffVertPair mso_sptWaveVert[] =   // adjustment1 : 0 - 4460
5737 {                                                   // adjustment2 : 8640 - 12960
5738     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
5739     { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
5740 };
5741 static const SvxMSDffCalculationData mso_sptWaveCalc[] =
5742 {
5743     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj)
5744     { 0x8000, { 21600, 0, 0x400 } },            //401
5745     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
5746     { 0x2000, { 0x402, 0, 10800 } },            //403 -2160 -> 2160 (horz.adj)
5747     { 0x2001, { 0x403, 2, 1 } },                //404 -4320 -> 4320 (horz.adj)
5748     { 0x2003, { 0x404, 0, 0 } },                //405 abs( 0x404 )  (horz.adj)
5749     { 0x8000, { 4320, 0, 0x405 } },             //406
5750     { 0xa006, { 0x403, 0, 0x405 } },            //407
5751     { 0x4001, { 15800, 0x400, 4460 } },         //408 0 -> 15800    (vert.adj)
5752     { 0xa000, { 0x400, 0, 0x408 } },            //409
5753     { 0x6000, { 0x400, 0x408, 0 } },            //40a
5754     { 0x8000, { 21600, 0, 0x404 } },            //40b
5755     { 0x6006, { 0x403, 0x40b, 21600 } },        //40c
5756     { 0xa000, { 0x40c, 0, 0x407 } },            //40d width between p0 and p1
5757     { 0x2001, { 0x405, 1, 2 } },                //40e
5758     { 0xa000, { 0x407, 7200, 0x40e } },         //40f
5759     { 0x6000, { 0x40c, 0x40e, 7200 } },         //410
5760     { 0x2001, { 0x40d, 1, 2 } },                //411 1/2 width
5761     { 0x6000, { 0x407, 0x411, 0 } },            //412 top center glue xpos
5762     { 0x8000, { 21600, 0, 0x412 } },            //413 bottom center glue xpos
5763     { 0x2001, { 0x405, 1, 2 } },                //414 left glue x pos
5764     { 0x8000, { 21600, 0, 0x414 } },            //415 right glue x pos
5765     { 0x2001, { 0x400, 2, 1 } },                //416 y1 (textbox)
5766     { 0x8000, { 21600, 0, 0x416 } },            //417 y2 (textbox)
5767 
5768     { 0x8000, { 21600, 0, 0x407 } },            //418 p2
5769 
5770     { 0x8000, { 21600, 0, 0x40f } },            //419 c
5771     { 0x6000, { 0x401, 0x408, 0 } },            //41a
5772 
5773     { 0x8000, { 21600, 0, 0x410 } },            //41b c
5774     { 0xa000, { 0x401, 0, 0x408 } },            //41c
5775 
5776     { 0x8000, { 21600, 0, 0x40c } }             //41d p3
5777 };
5778 static const SvxMSDffVertPair mso_sptWaveGluePoints[] =
5779 {
5780     { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
5781 };
5782 static const sal_uInt16 mso_sptWaveSegm[] =
5783 {
5784     0x4000, 0x2001, 0x0001, 0x2001, 0x6000, 0x8000
5785 };
5786 static const SvxMSDffHandle mso_sptWaveHandle[] =
5787 {
5788     {   MSDFF_HANDLE_FLAGS_RANGE,
5789         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4460 },
5790     {   MSDFF_HANDLE_FLAGS_RANGE,
5791         0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
5792 };
5793 static const sal_Int32 mso_sptWaveDefault[] =
5794 {
5795     2, 1400, 10800
5796 };
5797 static const SvxMSDffTextRectangles mso_sptWaveTextRect[] =
5798 {
5799     { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
5800 };
5801 static const mso_CustomShape msoWave =
5802 {
5803     (SvxMSDffVertPair*)mso_sptWaveVert, sizeof( mso_sptWaveVert ) / sizeof( SvxMSDffVertPair ),
5804     (sal_uInt16*)mso_sptWaveSegm, sizeof( mso_sptWaveSegm ) >> 1,
5805     (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
5806     (sal_Int32*)mso_sptWaveDefault,
5807     (SvxMSDffTextRectangles*)mso_sptWaveTextRect, sizeof( mso_sptWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
5808     21600, 21600,
5809     0x80000000, 0x80000000,
5810     (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
5811     (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
5812 };
5813 
5814 static const SvxMSDffVertPair mso_sptDoubleWaveVert[] = // adjustment1 : 0 - 2230
5815 {                                                       // adjustment2 : 8640 - 12960
5816     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
5817     { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
5818 };
5819 static const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] =
5820 {
5821     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj)
5822     { 0x8000, { 21600, 0, 0x400 } },            //401
5823     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
5824     { 0x2000, { 0x402, 0, 10800 } },            //403 -2160 -> 2160 (horz.adj)
5825     { 0x2001, { 0x403, 2, 1 } },                //404 -4320 -> 4320 (horz.adj)
5826     { 0x2003, { 0x404, 0, 0 } },                //405 abs( 0x404 )  (horz.adj)
5827     { 0x8000, { 4320, 0, 0x405 } },             //406 -> not used
5828     { 0xa006, { 0x403, 0, 0x405 } },            //407
5829     { 0x4001, { 7900, 0x400, 2230 } },          //408 0 -> 7900 (vert.adj)
5830     { 0xa000, { 0x400, 0, 0x408 } },            //409
5831     { 0x6000, { 0x400, 0x408, 0 } },            //40a
5832     { 0x8000, { 21600, 0, 0x404 } },            //40b
5833     { 0x6006, { 0x403, 0x40b, 21600 } },        //40c
5834     { 0xa000, { 0x40c, 0, 0x407 } },            //40d width between p0 and p1
5835     { 0x2001, { 0x405, 1, 2 } },                //40e
5836     { 0xa000, { 0x407, 3600, 0x40e } },         //40f
5837     { 0x6000, { 0x40c, 0x40e, 3600 } },         //410
5838     { 0x2001, { 0x40d, 1, 2 } },                //411 1/2 width
5839     { 0x6000, { 0x407, 0x411, 0 } },            //412 top center glue xpos
5840     { 0x8000, { 21600, 0, 0x412 } },            //413 bottom center glue xpos
5841     { 0x2001, { 0x405, 1, 2 } },                //414 left glue x pos
5842     { 0x8000, { 21600, 0, 0x414 } },            //415 right glue x pos
5843     { 0x2001, { 0x400, 2, 1 } },                //416 y1 (textbox)
5844     { 0x8000, { 21600, 0, 0x416 } },            //417 y2 (textbox)
5845 
5846     { 0x8000, { 21600, 0, 0x407 } },            //418 p2
5847 
5848     { 0x8000, { 21600, 0, 0x40f } },            //419 c
5849     { 0x6000, { 0x401, 0x408, 0 } },            //41a
5850 
5851     { 0x8000, { 21600, 0, 0x410 } },            //41b c
5852     { 0xa000, { 0x401, 0, 0x408 } },            //41c
5853 
5854     { 0x8000, { 21600, 0, 0x40c } },            //41d p3
5855     { 0xa000, { 0x412, 0, 0x40e } },            //41e
5856     { 0x6000, { 0x412, 0x40e, 0 } },            //41f
5857     { 0xa000, { 0x413, 0, 0x40e } },            //420
5858     { 0x6000, { 0x413, 0x40e, 0 } }             //421
5859 };
5860 static const SvxMSDffVertPair mso_sptDoubleWaveGluePoints[] =
5861 {
5862     { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
5863 };
5864 static const sal_uInt16 mso_sptDoubleWaveSegm[] =
5865 {
5866     0x4000, 0x2002, 0x0001, 0x2002, 0x6000, 0x8000
5867 };
5868 static const SvxMSDffHandle mso_sptDoubleWaveHandle[] =
5869 {
5870     {   MSDFF_HANDLE_FLAGS_RANGE,
5871         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 2230 },
5872     {   MSDFF_HANDLE_FLAGS_RANGE,
5873         0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
5874 };
5875 static const sal_Int32 mso_sptDoubleWaveDefault[] =
5876 {
5877     2, 1400, 10800
5878 };
5879 static const SvxMSDffTextRectangles mso_sptDoubleWaveTextRect[] =
5880 {
5881     { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
5882 };
5883 static const mso_CustomShape msoDoubleWave =
5884 {
5885     (SvxMSDffVertPair*)mso_sptDoubleWaveVert, sizeof( mso_sptDoubleWaveVert ) / sizeof( SvxMSDffVertPair ),
5886     (sal_uInt16*)mso_sptDoubleWaveSegm, sizeof( mso_sptDoubleWaveSegm ) >> 1,
5887     (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
5888     (sal_Int32*)mso_sptDoubleWaveDefault,
5889     (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
5890     21600, 21600,
5891     0x80000000, 0x80000000,
5892     (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
5893     (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
5894 };
5895 
5896 // for each shapetype a bit of 1 is indicating that the shape is NOT filled by default
5897 static const sal_uInt16 mso_DefaultFillingTable[] =
5898 {
5899     0x0000, 0x0018, 0x01ff, 0x0000, 0x0c00, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000
5900 };
5901 sal_Bool IsCustomShapeFilledByDefault( MSO_SPT eSpType )
5902 {
5903     sal_Bool bIsFilledByDefault = sal_True;
5904     sal_uInt32 i = (sal_uInt32)eSpType;
5905     if ( i < 0x100 )
5906         bIsFilledByDefault = ( mso_DefaultFillingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
5907     return bIsFilledByDefault;
5908 }
5909 sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType )
5910 {
5911     sal_Int16 nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::SEGMENTS;
5912     const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eSpType );
5913     if ( pDefCustomShape && pDefCustomShape->nGluePoints )
5914         nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::CUSTOM;
5915     else
5916     {
5917         switch( eSpType )
5918         {
5919             case mso_sptRectangle :
5920             case mso_sptRoundRectangle :
5921             case mso_sptPictureFrame :
5922             case mso_sptFlowChartProcess :
5923             case mso_sptFlowChartPredefinedProcess :
5924             case mso_sptFlowChartInternalStorage :
5925             case mso_sptTextPlainText :
5926             case mso_sptTextBox :
5927             case mso_sptVerticalScroll :
5928             case mso_sptHorizontalScroll :
5929                 nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::RECT;
5930             default: break;
5931         }
5932     }
5933     return nGluePointType;
5934 }
5935 
5936 // for each shapetype a bit of 1 is indicating that the shape is NOT stroked by default
5937 // #i28269#
5938 static const sal_uInt16 mso_DefaultStrokingTable[] =
5939 {
5940     0x0000, 0x0000, 0x0000, 0x0000,
5941     0x0800, 0x0000, 0x0000, 0x0000, // #i28269# Added shape 75 (mso_sptPictureFrame)
5942     0x0000, 0x0000, 0x0000, 0x0000,
5943     0x0000, 0x0000, 0x0000, 0x0000
5944 };
5945 // #i28269#
5946 sal_Bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType )
5947 {
5948     sal_Bool bIsStrokedByDefault = sal_True;
5949     sal_uInt32 i = (sal_uInt32)eSpType;
5950     if ( i < 0x100 )
5951         bIsStrokedByDefault = ( mso_DefaultStrokingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
5952     return bIsStrokedByDefault;
5953 }
5954 
5955 static const sal_uInt16 msoSortFilledObjectsToBackTable[] =
5956 {
5957     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
5958 };
5959 sal_Bool SortFilledObjectsToBackByDefault( MSO_SPT eSpType )
5960 {
5961     sal_Bool bSortFilledObjectsToBackByDefault = sal_True;
5962     sal_uInt32 i = (sal_uInt32)eSpType;
5963     if ( i < 0x100 )
5964         bSortFilledObjectsToBackByDefault = ( msoSortFilledObjectsToBackTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) != 0;
5965     return bSortFilledObjectsToBackByDefault;
5966 }
5967 
5968 static const SvxMSDffVertPair mso_sptFontWorkVert[] =
5969 {
5970     { 0, 0 }, { 21600, 0 }, { 0, 21600 }, { 21600, 21600 }
5971 };
5972 static const sal_uInt16 mso_sptFontWorkSegm[] =
5973 {
5974     0x4000, 0x0001, 0x8000,
5975     0x4000, 0x0001, 0x8000
5976 };
5977 static const SvxMSDffTextRectangles mso_sptFontWorkTextRect[] =
5978 {
5979     { { 0, 0 }, { 21600, 21600 } }
5980 };
5981 static const mso_CustomShape msoFontWork =
5982 {
5983     (SvxMSDffVertPair*)mso_sptFontWorkVert, sizeof( mso_sptFontWorkVert ) / sizeof( SvxMSDffVertPair ),
5984     (sal_uInt16*)mso_sptFontWorkSegm, sizeof( mso_sptFontWorkSegm ) >> 1,
5985     NULL, 0,
5986     NULL,
5987     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
5988     21600, 21600,
5989     0x80000000, 0x80000000,
5990     NULL, 0,
5991     NULL, 0 // Handles
5992 };
5993 
5994 static const SvxMSDffVertPair mso_sptTextPlainTextVert[] =
5995 {
5996     { 3 MSO_I, 0 }, { 5 MSO_I, 0 }, { 6 MSO_I, 21600 }, { 7 MSO_I, 21600 }
5997 };
5998 static const SvxMSDffCalculationData mso_sptTextPlainTextCalc[] =   // adjustment1 : 6629 - 14971
5999 {
6000     { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
6001     { 0x2001, { 0x400, 2, 1 } },
6002     { 0x2003, { 0x401, 0, 0 } },
6003     { 0xa006, { 0x401, 0, 0x402 } },        // x1(3)
6004     { 0x8000, { 21600, 0, 0x402 } },
6005     { 0x6006, { 0x401, 0x404, 21600 } },    // x2(5)
6006     { 0x6006, { 0x401, 0x402, 0 } },        // x2
6007     { 0xa006, { 0x401, 21600, 0x404 } }     // x3(7)
6008 };
6009 static const sal_uInt16 mso_sptTextPlainTextSegm[] =
6010 {
6011     0x4000, 0x0001, 0x8000,
6012     0x4000, 0x0001, 0x8000
6013 };
6014 static const SvxMSDffHandle mso_sptTextPlainTextHandle[] =
6015 {
6016     {   MSDFF_HANDLE_FLAGS_RANGE,
6017         0x100, 21600, 10800, 10800, 6629, 14971, 0x80000000, 0x7fffffff }
6018 };
6019 static const mso_CustomShape msoTextPlainText =
6020 {
6021     (SvxMSDffVertPair*)mso_sptTextPlainTextVert, sizeof( mso_sptTextPlainTextVert ) / sizeof( SvxMSDffVertPair ),
6022     (sal_uInt16*)mso_sptTextPlainTextSegm, sizeof( mso_sptTextPlainTextSegm ) >> 1,
6023     (SvxMSDffCalculationData*)mso_sptTextPlainTextCalc, sizeof( mso_sptTextPlainTextCalc ) / sizeof( SvxMSDffCalculationData ),
6024     (sal_Int32*)mso_sptDefault10800,
6025     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6026     21600, 21600,
6027     0x80000000, 0x80000000,
6028     NULL, 0,
6029     (SvxMSDffHandle*)mso_sptTextPlainTextHandle, sizeof( mso_sptTextPlainTextHandle ) / sizeof( SvxMSDffHandle )
6030 };
6031 
6032 static const SvxMSDffVertPair mso_sptTextStopVert[] =
6033 {
6034     { 0, 0 MSO_I }, { 7200, 0 }, { 14400, 0 }, { 21600, 0 MSO_I },
6035     { 0, 1 MSO_I }, { 7200, 21600 }, { 14400, 21600 }, { 21600, 1 MSO_I }
6036 };
6037 static const SvxMSDffCalculationData mso_sptTextStopCalc[] =    // adjustment1 : 3080 - 10800
6038 {
6039     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6040     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6041 };
6042 static const sal_uInt16 mso_sptTextStopSegm[] =
6043 {
6044     0x4000, 0x0003, 0x8000,
6045     0x4000, 0x0003, 0x8000
6046 };
6047 static const sal_Int32 mso_sptTextStopDefault[] =
6048 {
6049     1, 2700
6050 };
6051 static const SvxMSDffHandle mso_sptTextStopHandle[] =
6052 {
6053     {   MSDFF_HANDLE_FLAGS_RANGE,
6054         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 3080, 10800 }
6055 };
6056 static const mso_CustomShape msoTextStop =
6057 {
6058     (SvxMSDffVertPair*)mso_sptTextStopVert, sizeof( mso_sptTextStopVert ) / sizeof( SvxMSDffVertPair ),
6059     (sal_uInt16*)mso_sptTextStopSegm, sizeof( mso_sptTextStopSegm ) >> 1,
6060     (SvxMSDffCalculationData*)mso_sptTextStopCalc, sizeof( mso_sptTextStopCalc ) / sizeof( SvxMSDffCalculationData ),
6061     (sal_Int32*)mso_sptTextStopDefault,
6062     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6063     21600, 21600,
6064     0x80000000, 0x80000000,
6065     NULL, 0,
6066     (SvxMSDffHandle*)mso_sptTextStopHandle, sizeof( mso_sptTextStopHandle ) / sizeof( SvxMSDffHandle )
6067 };
6068 
6069 static const SvxMSDffVertPair mso_sptTextTriangleVert[] =
6070 {
6071     { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 21600 }
6072 };
6073 static const SvxMSDffCalculationData mso_sptTextTriangleCalc[] =    // adjustment1 : 6629 - 14971
6074 {
6075     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
6076 };
6077 static const sal_uInt16 mso_sptTextTriangleSegm[] =
6078 {
6079     0x4000, 0x0002, 0x8000,
6080     0x4000, 0x0001, 0x8000
6081 };
6082 static const SvxMSDffHandle mso_sptTextTriangleHandle[] =
6083 {
6084     {   MSDFF_HANDLE_FLAGS_RANGE,
6085         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
6086 };
6087 static const mso_CustomShape msoTextTriangle =
6088 {
6089     (SvxMSDffVertPair*)mso_sptTextTriangleVert, sizeof( mso_sptTextTriangleVert ) / sizeof( SvxMSDffVertPair ),
6090     (sal_uInt16*)mso_sptTextTriangleSegm, sizeof( mso_sptTextTriangleSegm ) >> 1,
6091     (SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6092     (sal_Int32*)mso_sptDefault10800,
6093     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6094     21600, 21600,
6095     0x80000000, 0x80000000,
6096     NULL, 0,
6097     (SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6098 };
6099 static const SvxMSDffVertPair mso_sptTextTriangleInvertedVert[] =
6100 {
6101     { 0, 0 }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6102 };
6103 static const sal_uInt16 mso_sptTextTriangleInvertedSegm[] =
6104 {
6105     0x4000, 0x0001, 0x8000,
6106     0x4000, 0x0002, 0x8000
6107 };
6108 static const mso_CustomShape msoTextTriangleInverted =
6109 {
6110     (SvxMSDffVertPair*)mso_sptTextTriangleInvertedVert, sizeof( mso_sptTextTriangleInvertedVert ) / sizeof( SvxMSDffVertPair ),
6111     (sal_uInt16*)mso_sptTextTriangleInvertedSegm, sizeof( mso_sptTextTriangleInvertedSegm ) >> 1,
6112     (SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6113     (sal_Int32*)mso_sptDefault10800,
6114     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6115     21600, 21600,
6116     0x80000000, 0x80000000,
6117     NULL, 0,
6118     (SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6119 };
6120 
6121 static const SvxMSDffVertPair mso_sptTextChevronVert[] =
6122 {
6123     { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 10800, 1 MSO_I }, { 21600, 21600 }
6124 };
6125 static const SvxMSDffCalculationData mso_sptTextChevronCalc[] = // adjustment1 : 6629 - 14971
6126 {
6127     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6128     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6129 };
6130 static const sal_uInt16 mso_sptTextChevronSegm[] =
6131 {
6132     0x4000, 0x0002, 0x8000,
6133     0x4000, 0x0002, 0x8000
6134 };
6135 static const SvxMSDffHandle mso_sptTextChevronHandle[] =
6136 {
6137     {   MSDFF_HANDLE_FLAGS_RANGE,
6138         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6139 };
6140 static const mso_CustomShape msoTextChevron =
6141 {
6142     (SvxMSDffVertPair*)mso_sptTextChevronVert, sizeof( mso_sptTextChevronVert ) / sizeof( SvxMSDffVertPair ),
6143     (sal_uInt16*)mso_sptTextChevronSegm, sizeof( mso_sptTextChevronSegm ) >> 1,
6144     (SvxMSDffCalculationData*)mso_sptTextChevronCalc, sizeof( mso_sptTextChevronCalc ) / sizeof( SvxMSDffCalculationData ),
6145     (sal_Int32*)mso_sptDefault5400,
6146     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6147     21600, 21600,
6148     0x80000000, 0x80000000,
6149     NULL, 0,
6150     (SvxMSDffHandle*)mso_sptTextChevronHandle, sizeof( mso_sptTextChevronHandle ) / sizeof( SvxMSDffHandle )
6151 };
6152 
6153 static const SvxMSDffVertPair mso_sptTextChevronInvertedVert[] =
6154 {
6155     { 0, 0 }, { 10800, 1 MSO_I }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6156 };
6157 static const SvxMSDffCalculationData mso_sptTextChevronInvertedCalc[] = // adjustment1 : 6629 - 14971
6158 {
6159     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6160     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6161 };
6162 static const sal_uInt16 mso_sptTextChevronInvertedSegm[] =
6163 {
6164     0x4000, 0x0002, 0x8000,
6165     0x4000, 0x0002, 0x8000
6166 };
6167 static const SvxMSDffHandle mso_sptTextChevronInvertedHandle[] =
6168 {
6169     {   MSDFF_HANDLE_FLAGS_RANGE,
6170         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6171 };
6172 static const mso_CustomShape msoTextChevronInverted =
6173 {
6174     (SvxMSDffVertPair*)mso_sptTextChevronInvertedVert, sizeof( mso_sptTextChevronInvertedVert ) / sizeof( SvxMSDffVertPair ),
6175     (sal_uInt16*)mso_sptTextChevronInvertedSegm, sizeof( mso_sptTextChevronInvertedSegm ) >> 1,
6176     (SvxMSDffCalculationData*)mso_sptTextChevronInvertedCalc, sizeof( mso_sptTextChevronInvertedCalc ) / sizeof( SvxMSDffCalculationData ),
6177     (sal_Int32*)mso_sptDefault16200,
6178     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6179     21600, 21600,
6180     0x80000000, 0x80000000,
6181     NULL, 0,
6182     (SvxMSDffHandle*)mso_sptTextChevronInvertedHandle, sizeof( mso_sptTextChevronInvertedHandle ) / sizeof( SvxMSDffHandle )
6183 };
6184 
6185 static const SvxMSDffVertPair mso_sptTextRingOutsideVert[] =
6186 {
6187     { 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 },
6188     { 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }
6189 };
6190 static const SvxMSDffCalculationData mso_sptTextRingOutsideCalc[] = // adjustment1 : 6629 - 14971
6191 {
6192     { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
6193     { 0x8000, { 21600, 0, 0x400 } }
6194 };
6195 static const sal_uInt16 mso_sptTextRingOutsideSegm[] =
6196 {
6197     0xA203, 0x8000,
6198     0xA203, 0x8000
6199 };
6200 static const SvxMSDffHandle mso_sptTextRingOutsideHandle[] =
6201 {
6202     {   MSDFF_HANDLE_FLAGS_RANGE,
6203         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6204 };
6205 static const mso_CustomShape msoTextRingOutside =
6206 {
6207     (SvxMSDffVertPair*)mso_sptTextRingOutsideVert, sizeof( mso_sptTextRingOutsideVert ) / sizeof( SvxMSDffVertPair ),
6208     (sal_uInt16*)mso_sptTextRingOutsideSegm, sizeof( mso_sptTextRingOutsideSegm ) >> 1,
6209     (SvxMSDffCalculationData*)mso_sptTextRingOutsideCalc, sizeof( mso_sptTextRingOutsideCalc ) / sizeof( SvxMSDffCalculationData ),
6210     (sal_Int32*)mso_sptDefault16200,
6211     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6212     21600, 21600,
6213     0x80000000, 0x80000000,
6214     NULL, 0,
6215     (SvxMSDffHandle*)mso_sptTextRingOutsideHandle, sizeof( mso_sptTextRingOutsideHandle ) / sizeof( SvxMSDffHandle )
6216 };
6217 
6218 static const SvxMSDffVertPair mso_sptTextFadeRightVert[] =
6219 {
6220     { 0, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 1 MSO_I }
6221 };
6222 static const SvxMSDffCalculationData mso_sptTextFadeCalc[] =
6223 {
6224     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6225     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6226 };
6227 static const sal_uInt16 mso_sptTextFadeSegm[] =
6228 {
6229     0x4000, 0x0001, 0x8000,
6230     0x4000, 0x0001, 0x8000
6231 };
6232 static const SvxMSDffHandle mso_sptTextFadeRightHandle[] =
6233 {
6234     {   MSDFF_HANDLE_FLAGS_RANGE,
6235         21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6236 };
6237 static const mso_CustomShape msoTextFadeRight =
6238 {
6239     (SvxMSDffVertPair*)mso_sptTextFadeRightVert, sizeof( mso_sptTextFadeRightVert ) / sizeof( SvxMSDffVertPair ),
6240     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6241     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6242     (sal_Int32*)mso_sptDefault7200,
6243     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6244     21600, 21600,
6245     0x80000000, 0x80000000,
6246     NULL, 0,
6247     (SvxMSDffHandle*)mso_sptTextFadeRightHandle, sizeof( mso_sptTextFadeRightHandle ) / sizeof( SvxMSDffHandle )
6248 };
6249 
6250 static const SvxMSDffVertPair mso_sptTextFadeLeftVert[] =
6251 {
6252     { 0, 0 MSO_I }, { 21600, 0 }, { 0, 1 MSO_I }, { 21600, 21600 }
6253 };
6254 static const SvxMSDffHandle mso_sptTextFadeLeftHandle[] =
6255 {
6256     {   MSDFF_HANDLE_FLAGS_RANGE,
6257         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6258 };
6259 static const mso_CustomShape msoTextFadeLeft =
6260 {
6261     (SvxMSDffVertPair*)mso_sptTextFadeLeftVert, sizeof( mso_sptTextFadeLeftVert ) / sizeof( SvxMSDffVertPair ),
6262     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6263     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6264     (sal_Int32*)mso_sptDefault7200,
6265     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6266     21600, 21600,
6267     0x80000000, 0x80000000,
6268     NULL, 0,
6269     (SvxMSDffHandle*)mso_sptTextFadeLeftHandle, sizeof( mso_sptTextFadeLeftHandle ) / sizeof( SvxMSDffHandle )
6270 };
6271 
6272 static const SvxMSDffVertPair mso_sptTextFadeUpVert[] =
6273 {
6274     { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 0, 21600 }, { 21600, 21600 }
6275 };
6276 static const SvxMSDffHandle mso_sptTextFadeUpHandle[] =
6277 {
6278     {   MSDFF_HANDLE_FLAGS_RANGE,
6279         0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6280 };
6281 static const mso_CustomShape msoTextFadeUp =
6282 {
6283     (SvxMSDffVertPair*)mso_sptTextFadeUpVert, sizeof( mso_sptTextFadeUpVert ) / sizeof( SvxMSDffVertPair ),
6284     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6285     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6286     (sal_Int32*)mso_sptDefault7200,
6287     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6288     21600, 21600,
6289     0x80000000, 0x80000000,
6290     NULL, 0,
6291     (SvxMSDffHandle*)mso_sptTextFadeUpHandle, sizeof( mso_sptTextFadeUpHandle ) / sizeof( SvxMSDffHandle )
6292 };
6293 
6294 static const SvxMSDffVertPair mso_sptTextFadeDownVert[] =
6295 {
6296     { 0, 0 }, { 21600, 0 }, { 0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
6297 };
6298 static const SvxMSDffHandle mso_sptTextFadeDownHandle[] =
6299 {
6300     {   MSDFF_HANDLE_FLAGS_RANGE,
6301         0x100, 21600, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6302 };
6303 static const mso_CustomShape msoTextFadeDown =
6304 {
6305     (SvxMSDffVertPair*)mso_sptTextFadeDownVert, sizeof( mso_sptTextFadeDownVert ) / sizeof( SvxMSDffVertPair ),
6306     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6307     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6308     (sal_Int32*)mso_sptDefault7200,
6309     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6310     21600, 21600,
6311     0x80000000, 0x80000000,
6312     NULL, 0,
6313     (SvxMSDffHandle*)mso_sptTextFadeDownHandle, sizeof( mso_sptTextFadeDownHandle ) / sizeof( SvxMSDffHandle )
6314 };
6315 
6316 static const SvxMSDffVertPair mso_sptTextSlantUpVert[] =
6317 {
6318     { 0, 0 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 1 MSO_I }
6319 };
6320 static const SvxMSDffHandle mso_sptTextSlantUpHandle[] =
6321 {
6322     {   MSDFF_HANDLE_FLAGS_RANGE,
6323         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 15400 }
6324 };
6325 static const mso_CustomShape msoTextSlantUp =
6326 {
6327     (SvxMSDffVertPair*)mso_sptTextSlantUpVert, sizeof( mso_sptTextSlantUpVert ) / sizeof( SvxMSDffVertPair ),
6328     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6329     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6330     (sal_Int32*)mso_sptDefault12000,
6331     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6332     21600, 21600,
6333     0x80000000, 0x80000000,
6334     NULL, 0,
6335     (SvxMSDffHandle*)mso_sptTextSlantUpHandle, sizeof( mso_sptTextSlantUpHandle ) / sizeof( SvxMSDffHandle )
6336 };
6337 
6338 static const SvxMSDffVertPair mso_sptTextSlantDownVert[] =
6339 {
6340     { 0, 0 }, { 21600, 1 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6341 };
6342 static const SvxMSDffHandle mso_sptTextSlantDownHandle[] =
6343 {
6344     {   MSDFF_HANDLE_FLAGS_RANGE,
6345         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6346 };
6347 static const mso_CustomShape msoTextSlantDown =
6348 {
6349     (SvxMSDffVertPair*)mso_sptTextSlantDownVert, sizeof( mso_sptTextSlantDownVert ) / sizeof( SvxMSDffVertPair ),
6350     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6351     (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6352     (sal_Int32*)mso_sptDefault12000,
6353     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6354     21600, 21600,
6355     0x80000000, 0x80000000,
6356     NULL, 0,
6357     (SvxMSDffHandle*)mso_sptTextSlantDownHandle, sizeof( mso_sptTextSlantDownHandle ) / sizeof( SvxMSDffHandle )
6358 };
6359 
6360 static const SvxMSDffVertPair mso_sptTextCascadeUpVert[] =
6361 {
6362     { 0, 2 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 0 MSO_I }
6363 };
6364 static const SvxMSDffCalculationData mso_sptTextCascadeCalc[] =
6365 {
6366     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6367     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
6368     { 0x2001, { 0x401, 1, 4 } }
6369 };
6370 static const SvxMSDffHandle mso_sptTextCascadeUpHandle[] =
6371 {
6372     {   MSDFF_HANDLE_FLAGS_RANGE,
6373         21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6374 };
6375 static const mso_CustomShape msoTextCascadeUp =
6376 {
6377     (SvxMSDffVertPair*)mso_sptTextCascadeUpVert, sizeof( mso_sptTextCascadeUpVert ) / sizeof( SvxMSDffVertPair ),
6378     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6379     (SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6380     (sal_Int32*)mso_sptDefault9600,
6381     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6382     21600, 21600,
6383     0x80000000, 0x80000000,
6384     NULL, 0,
6385     (SvxMSDffHandle*)mso_sptTextCascadeUpHandle, sizeof( mso_sptTextCascadeUpHandle ) / sizeof( SvxMSDffHandle )
6386 };
6387 
6388 static const SvxMSDffVertPair mso_sptTextCascadeDownVert[] =
6389 {
6390     { 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6391 };
6392 static const SvxMSDffHandle mso_sptTextCascadeDownHandle[] =
6393 {
6394     {   MSDFF_HANDLE_FLAGS_RANGE,
6395         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6396 };
6397 static const mso_CustomShape msoTextCascadeDown =
6398 {
6399     (SvxMSDffVertPair*)mso_sptTextCascadeDownVert, sizeof( mso_sptTextCascadeDownVert ) / sizeof( SvxMSDffVertPair ),
6400     (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6401     (SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6402     (sal_Int32*)mso_sptDefault9600,
6403     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6404     21600, 21600,
6405     0x80000000, 0x80000000,
6406     NULL, 0,
6407     (SvxMSDffHandle*)mso_sptTextCascadeDownHandle, sizeof( mso_sptTextCascadeDownHandle ) / sizeof( SvxMSDffHandle )
6408 };
6409 
6410 static const SvxMSDffVertPair mso_sptTextArchUpCurveVert[] =
6411 {
6412     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
6413 };
6414 static const SvxMSDffCalculationData mso_sptTextArchCurveCalc[] =
6415 {
6416     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6417     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6418     { 0x2000, { 0x400, 10800, 0 } },
6419     { 0x2000, { 0x401, 10800, 0 } },
6420     { 0x8000, { 21600, 0, 0x402 } }
6421 };
6422 static const sal_uInt16 mso_sptTextArchUpCurveSegm[] =
6423 {
6424     0xA504, 0x8000      // clockw�se arc
6425 };
6426 static const SvxMSDffHandle mso_sptTextArchUpCurveHandle[] =
6427 {
6428     {   MSDFF_HANDLE_FLAGS_POLAR,
6429         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6430 };
6431 static const sal_Int32 mso_sptTextArchUpCurveDefault[] =
6432 {
6433     1, 180
6434 };
6435 static const mso_CustomShape msoTextArchUpCurve =
6436 {
6437     (SvxMSDffVertPair*)mso_sptTextArchUpCurveVert, sizeof( mso_sptTextArchUpCurveVert ) / sizeof( SvxMSDffVertPair ),
6438     (sal_uInt16*)mso_sptTextArchUpCurveSegm, sizeof( mso_sptTextArchUpCurveSegm ) >> 1,
6439     (SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6440     (sal_Int32*)mso_sptTextArchUpCurveDefault,
6441     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6442     21600, 21600,
6443     0x80000000, 0x80000000,
6444     NULL, 0,
6445     (SvxMSDffHandle*)mso_sptTextArchUpCurveHandle, sizeof( mso_sptTextArchUpCurveHandle ) / sizeof( SvxMSDffHandle )
6446 };
6447 
6448 static const SvxMSDffVertPair mso_sptTextArchDownCurveVert[] =
6449 {
6450     { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6451 };
6452 static const sal_uInt16 mso_sptTextArchDownCurveSegm[] =
6453 {
6454     0xA304, 0x8000      // counter clockwise arc to
6455 };
6456 static const SvxMSDffHandle mso_sptTextArchDownCurveHandle[] =
6457 {
6458     {   MSDFF_HANDLE_FLAGS_POLAR,
6459         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6460 };
6461 static const sal_Int32 mso_sptTextArchDownCurveDefault[] =
6462 {
6463     1, 0
6464 };
6465 static const mso_CustomShape msoTextArchDownCurve =
6466 {
6467     (SvxMSDffVertPair*)mso_sptTextArchDownCurveVert, sizeof( mso_sptTextArchDownCurveVert ) / sizeof( SvxMSDffVertPair ),
6468     (sal_uInt16*)mso_sptTextArchDownCurveSegm, sizeof( mso_sptTextArchDownCurveSegm ) >> 1,
6469     (SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6470     (sal_Int32*)mso_sptTextArchDownCurveDefault,
6471     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6472     21600, 21600,
6473     0x80000000, 0x80000000,
6474     NULL, 0,
6475     (SvxMSDffHandle*)mso_sptTextArchDownCurveHandle, sizeof( mso_sptTextArchDownCurveHandle ) / sizeof( SvxMSDffHandle )
6476 };
6477 
6478 static const SvxMSDffVertPair mso_sptTextCircleCurveVert[] =
6479 {
6480     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I }
6481 };
6482 static const SvxMSDffCalculationData mso_sptTextCircleCurveCalc[] =
6483 {
6484     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6485     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6486     { 0x2000, { 0x400, 10800, 0 } },
6487     { 0x2000, { 0x401, 10800, 0 } },
6488     { 0x8000, { 21600, 0, 0x403 } }
6489 };
6490 static const sal_uInt16 mso_sptTextCircleCurveSegm[] =
6491 {
6492     0xA504, 0x8000      // clockwise arc to
6493 };
6494 static const SvxMSDffHandle mso_sptTextCircleCurveHandle[] =
6495 {
6496     {   MSDFF_HANDLE_FLAGS_POLAR,
6497         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6498 };
6499 static const sal_Int32 mso_sptTextCircleCurveDefault[] =
6500 {
6501     1, -179
6502 };
6503 static const mso_CustomShape msoTextCircleCurve =
6504 {
6505     (SvxMSDffVertPair*)mso_sptTextCircleCurveVert, sizeof( mso_sptTextCircleCurveVert ) / sizeof( SvxMSDffVertPair ),
6506     (sal_uInt16*)mso_sptTextCircleCurveSegm, sizeof( mso_sptTextCircleCurveSegm ) >> 1,
6507     (SvxMSDffCalculationData*)mso_sptTextCircleCurveCalc, sizeof( mso_sptTextCircleCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6508     (sal_Int32*)mso_sptTextCircleCurveDefault,
6509     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6510     21600, 21600,
6511     0x80000000, 0x80000000,
6512     NULL, 0,
6513     (SvxMSDffHandle*)mso_sptTextCircleCurveHandle, sizeof( mso_sptTextCircleCurveHandle ) / sizeof( SvxMSDffHandle )
6514 };
6515 
6516 static const SvxMSDffVertPair mso_sptTextButtonCurveVert[] =
6517 {
6518     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6519     { 0, 10800 }, { 21600, 10800 },
6520     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6521 };
6522 static const SvxMSDffCalculationData mso_sptTextButtonCurveCalc[] =
6523 {
6524     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6525     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6526     { 0x2000, { 0x400, 10800, 0 } },
6527     { 0x2000, { 0x401, 10800, 0 } },
6528     { 0x8000, { 21600, 0, 0x402 } },
6529     { 0x8000, { 21600, 0, 0x403 } }
6530 };
6531 static const sal_uInt16 mso_sptTextButtonCurveSegm[] =
6532 {
6533     0xA504, 0x8000,     // clockwise arc
6534     0x4000, 0x0001, 0x8000,
6535     0xA304, 0x8000      // counter clockwise
6536 };
6537 static const SvxMSDffHandle mso_sptTextButtonCurveHandle[] =
6538 {
6539     {   MSDFF_HANDLE_FLAGS_POLAR,
6540         10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6541 };
6542 static const sal_Int32 mso_sptTextButtonCurveDefault[] =
6543 {
6544     1, 180
6545 };
6546 static const mso_CustomShape msoTextButtonCurve =
6547 {
6548     (SvxMSDffVertPair*)mso_sptTextButtonCurveVert, sizeof( mso_sptTextButtonCurveVert ) / sizeof( SvxMSDffVertPair ),
6549     (sal_uInt16*)mso_sptTextButtonCurveSegm, sizeof( mso_sptTextButtonCurveSegm ) >> 1,
6550     (SvxMSDffCalculationData*)mso_sptTextButtonCurveCalc, sizeof( mso_sptTextButtonCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6551     (sal_Int32*)mso_sptTextButtonCurveDefault,
6552     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6553     21600, 21600,
6554     0x80000000, 0x80000000,
6555     NULL, 0,
6556     (SvxMSDffHandle*)mso_sptTextButtonCurveHandle, sizeof( mso_sptTextButtonCurveHandle ) / sizeof( SvxMSDffHandle )
6557 };
6558 
6559 static const SvxMSDffVertPair mso_sptTextArchUpPourVert[] =
6560 {
6561     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6562     { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 9 MSO_I }
6563 };
6564 static const SvxMSDffCalculationData mso_sptTextArchPourCalc[] =
6565 {
6566     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6567     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6568     { 0x2000, { 0x400, 10800, 0 } },
6569     { 0x2000, { 0x401, 10800, 0 } },
6570     { 0x8000, { 21600, 0, 0x402 } },
6571     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6572     { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6
6573     { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6574     { 0x2000, { 0x406, 10800, 0 } },                // 8
6575     { 0x2000, { 0x407, 10800, 0 } },
6576     { 0x8000, { 21600, 0, 0x408 } },                // 10
6577     { 0x8000, { 21600, 0, 0x405 } }
6578 };
6579 static const sal_uInt16 mso_sptTextArchUpPourSegm[] =
6580 {
6581     0xA504, 0x8000, 0xA504, 0x8000
6582 };
6583 static const SvxMSDffHandle mso_sptTextArchPourHandle[] =
6584 {
6585     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6586         0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6587 };
6588 static const sal_Int32 mso_sptTextArchUpPourDefault[] =
6589 {
6590     2, 180, 5400
6591 };
6592 static const mso_CustomShape msoTextArchUpPour =
6593 {
6594     (SvxMSDffVertPair*)mso_sptTextArchUpPourVert, sizeof( mso_sptTextArchUpPourVert ) / sizeof( SvxMSDffVertPair ),
6595     (sal_uInt16*)mso_sptTextArchUpPourSegm, sizeof( mso_sptTextArchUpPourSegm ) >> 1,
6596     (SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6597     (sal_Int32*)mso_sptTextArchUpPourDefault,
6598     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6599     21600, 21600,
6600     0x80000000, 0x80000000,
6601     NULL, 0,
6602     (SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6603 };
6604 
6605 static const SvxMSDffVertPair mso_sptTextArchDownPourVert[] =
6606 {
6607     { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 0xa MSO_I, 9 MSO_I }, { 8 MSO_I, 9 MSO_I },
6608     { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6609 };
6610 static const sal_uInt16 mso_sptTextArchDownPourSegm[] =
6611 {
6612     0xA304, 0x8000, 0xA304, 0x8000
6613 };
6614 static const sal_Int32 mso_sptTextArchDownPourDefault[] =
6615 {
6616     2, 0, 5400
6617 };
6618 static const mso_CustomShape msoTextArchDownPour =
6619 {
6620     (SvxMSDffVertPair*)mso_sptTextArchDownPourVert, sizeof( mso_sptTextArchDownPourVert ) / sizeof( SvxMSDffVertPair ),
6621     (sal_uInt16*)mso_sptTextArchDownPourSegm, sizeof( mso_sptTextArchDownPourSegm ) >> 1,
6622     (SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6623     (sal_Int32*)mso_sptTextArchDownPourDefault,
6624     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6625     21600, 21600,
6626     0x80000000, 0x80000000,
6627     NULL, 0,
6628     (SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6629 };
6630 
6631 static const SvxMSDffVertPair mso_sptTextCirclePourVert[] =
6632 {
6633     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I },
6634     { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 8 MSO_I, 0xa MSO_I }
6635 };
6636 static const SvxMSDffCalculationData mso_sptTextCirclePourCalc[] =
6637 {
6638     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6639     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6640     { 0x2000, { 0x400, 10800, 0 } },
6641     { 0x2000, { 0x401, 10800, 0 } },
6642     { 0x8000, { 21600, 0, 0x403 } },
6643     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6644     { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6
6645     { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6646     { 0x2000, { 0x406, 10800, 0 } },                // 8
6647     { 0x2000, { 0x407, 10800, 0 } },
6648     { 0x8000, { 21600, 0, 0x409 } },                // 10
6649     { 0x8000, { 21600, 0, 0x405 } },
6650     { 0x000, { 21600, 0, 0 } }
6651 };
6652 static const sal_uInt16 mso_sptTextCirclePourSegm[] =
6653 {
6654     0xA504, 0x8000, 0xA504, 0x8000
6655 };
6656 static const SvxMSDffHandle mso_sptTextCirclePourHandle[] =
6657 {
6658     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6659         0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6660 };
6661 static const sal_Int32 mso_sptTextCirclePourDefault[] =
6662 {
6663     2,  -179, 5400
6664 };
6665 static const mso_CustomShape msoTextCirclePour =
6666 {
6667     (SvxMSDffVertPair*)mso_sptTextCirclePourVert, sizeof( mso_sptTextCirclePourVert ) / sizeof( SvxMSDffVertPair ),
6668     (sal_uInt16*)mso_sptTextCirclePourSegm, sizeof( mso_sptTextCirclePourSegm ) >> 1,
6669     (SvxMSDffCalculationData*)mso_sptTextCirclePourCalc, sizeof( mso_sptTextCirclePourCalc ) / sizeof( SvxMSDffCalculationData ),
6670     (sal_Int32*)mso_sptTextCirclePourDefault,
6671     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6672     21600, 21600,
6673     0x80000000, 0x80000000,
6674     NULL, 0,
6675     (SvxMSDffHandle*)mso_sptTextCirclePourHandle, sizeof( mso_sptTextCirclePourHandle ) / sizeof( SvxMSDffHandle )
6676 };
6677 
6678 static const SvxMSDffVertPair mso_sptTextButtonPourVert[] =
6679 {
6680     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6681     { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 11 MSO_I }, { 12 MSO_I, 11 MSO_I },
6682     { 0x16 MSO_I, 16 MSO_I }, { 0x15 MSO_I, 16 MSO_I },
6683     { 0x16 MSO_I, 15 MSO_I }, { 0x15 MSO_I, 15 MSO_I },
6684     { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 13 MSO_I }, { 12 MSO_I, 13 MSO_I },
6685     { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6686 };
6687 static const SvxMSDffCalculationData mso_sptTextButtonPourCalc[] =
6688 {
6689     { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },                 // 0x00
6690     { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },                 // 0x01
6691     { 0x2000, { 0x400, 10800, 0 } },                                // 0x02
6692     { 0x2000, { 0x401, 10800, 0 } },                                // 0x03
6693     { 0x8000, { 21600, 0, 0x402 } },                                // 0x04
6694     { 0x8000, { 21600, 0, 0x403 } },                                // 0x05
6695 
6696     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },                // 0x06
6697     { 0x8000, { 21600, 0, 0x406 } },                                // 0x07
6698 
6699     { 0x600a, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x08
6700     { 0x6009, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x09
6701     { 0x2000, { 0x408, 10800, 0 } },    // 0x0a
6702     { 0x2000, { 0x409, 10800, 0 } },    // 0x0b
6703     { 0x8000, { 21600, 0, 0x40a } },    // 0x0c
6704     { 0x8000, { 21600, 0, 0x40b } },    // 0x0d
6705     { 0x2001, { 0x406, 1, 2 } },        // 0x0e
6706     { 0x4000, { 10800, 0x40e, 0 } },    // 0x0f
6707     { 0x8000, { 10800, 0, 0x40e } },    // 0x10
6708     { 0x6001, { 0x40e, 0x40e, 1 } },    // 0x11
6709     { 0x6001, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 1 } },    // 0x12
6710     { 0xA000, { 0x412, 0, 0x411 } },    // 0x13
6711     { 0x200d, { 0x413, 0, 0 } },        // 0x14
6712     { 0x4000, { 10800, 0x414, 0 } },    // 0x15
6713     { 0x8000, { 10800, 0, 0x414 } }     // 0x16
6714 };
6715 static const sal_uInt16 mso_sptTextButtonPourSegm[] =
6716 {
6717     0xA504, 0x8000,     // clockwise arc
6718     0xA504, 0x8000,     // clockwise arc
6719     0x4000, 0x0001, 0x8000,
6720     0x4000, 0x0001, 0x8000,
6721     0xA304, 0x8000,     // counter clockwise
6722     0xA304, 0x8000      // counter clockwise
6723 };
6724 static const SvxMSDffHandle mso_sptTextButtonPourHandle[] =
6725 {
6726     {   MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6727         0x101, 0x100, 10800, 10800, 4320, 10800, 0x80000000, 0x7fffffff }
6728 };
6729 static const sal_Int32 mso_sptTextButtonPourDefault[] =
6730 {
6731     2, 180, 5400
6732 };
6733 static const mso_CustomShape msoTextButtonPour =
6734 {
6735     (SvxMSDffVertPair*)mso_sptTextButtonPourVert, sizeof( mso_sptTextButtonPourVert ) / sizeof( SvxMSDffVertPair ),
6736     (sal_uInt16*)mso_sptTextButtonPourSegm, sizeof( mso_sptTextButtonPourSegm ) >> 1,
6737     (SvxMSDffCalculationData*)mso_sptTextButtonPourCalc, sizeof( mso_sptTextButtonPourCalc ) / sizeof( SvxMSDffCalculationData ),
6738     (sal_Int32*)mso_sptTextButtonPourDefault,
6739     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6740     21600, 21600,
6741     0x80000000, 0x80000000,
6742     NULL, 0,
6743     (SvxMSDffHandle*)mso_sptTextButtonPourHandle, sizeof( mso_sptTextButtonPourHandle ) / sizeof( SvxMSDffHandle )
6744 };
6745 
6746 static const SvxMSDffVertPair mso_sptTextCurveUpVert[] =
6747 {
6748     { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
6749     { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
6750 };
6751 static const SvxMSDffCalculationData mso_sptTextCurveUpCalc[] =
6752 {
6753     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6754     { 0x4001, { 14250, 0x400, 12170 } },        // 401
6755     { 0x4001, { 12800, 0x400, 12170 } },        // 402
6756     { 0x4001, { 6380, 0x400, 12170 } },         // 403
6757     { 0x8000, { 21600, 0, 0x403 } }             // 404
6758 };
6759 static const sal_uInt16 mso_sptTextCurveUpSegm[] =
6760 {
6761     0x4000, 0x2001, 0x8000,
6762     0x4000, 0x2002, 0x8000
6763 };
6764 static const SvxMSDffHandle mso_sptTextCurveUpHandle[] =
6765 {
6766     {   MSDFF_HANDLE_FLAGS_RANGE,
6767         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
6768 };
6769 static const sal_Int32 mso_sptTextCurveUpDefault[] =
6770 {
6771     1, 9900
6772 };
6773 static const mso_CustomShape msoTextCurveUp =
6774 {
6775     (SvxMSDffVertPair*)mso_sptTextCurveUpVert, sizeof( mso_sptTextCurveUpVert ) / sizeof( SvxMSDffVertPair ),
6776     (sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
6777     (SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
6778     (sal_Int32*)mso_sptTextCurveUpDefault,
6779     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6780     21600, 21600,
6781     0x80000000, 0x80000000,
6782     NULL, 0,
6783     (SvxMSDffHandle*)mso_sptTextCurveUpHandle, sizeof( mso_sptTextCurveUpHandle ) / sizeof( SvxMSDffHandle )
6784 };
6785 
6786 static const SvxMSDffVertPair mso_sptTextCurveDownVert[] =
6787 {
6788 //  { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
6789     { 0, 0 }, { 9960, 2 MSO_I }, { 16700, 1 MSO_I }, { 21600, 0 MSO_I },
6790 
6791 //  { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
6792     { 0, 4 MSO_I }, { 5690, 21600 }, { 7490, 21600 }, { 11500, 21600 }, { 13100, 21600 }, { 17900, 21600 }, { 21600, 4 MSO_I }
6793 };
6794 static const SvxMSDffHandle mso_sptTextCurveDownHandle[] =
6795 {
6796     {   MSDFF_HANDLE_FLAGS_RANGE,
6797         21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
6798 };
6799 static const mso_CustomShape msoTextCurveDown =
6800 {
6801     (SvxMSDffVertPair*)mso_sptTextCurveDownVert, sizeof( mso_sptTextCurveDownVert ) / sizeof( SvxMSDffVertPair ),
6802     (sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
6803     (SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
6804     (sal_Int32*)mso_sptTextCurveUpDefault,
6805     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6806     21600, 21600,
6807     0x80000000, 0x80000000,
6808     NULL, 0,
6809     (SvxMSDffHandle*)mso_sptTextCurveDownHandle, sizeof( mso_sptTextCurveDownHandle ) / sizeof( SvxMSDffHandle )
6810 };
6811 
6812 static const SvxMSDffVertPair mso_sptTextCanUpVert[] =
6813 {
6814     { 0, 1 MSO_I }, { 900, 0 }, { 7100, 0 }, { 10800, 0 }, { 14500, 0 }, { 20700, 0 }, { 21600, 1 MSO_I },
6815     { 0, 21600 }, { 900, 4 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 4 MSO_I }, { 21600, 21600 }
6816 };
6817 static const SvxMSDffCalculationData mso_sptTextCanUpCalc[] =
6818 {
6819     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 400
6820     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401
6821     { 0x2000, { DFF_Prop_adjustValue, 0, 14400 } }, // 402
6822     { 0x4001, { 5470, 0x402, 7200 } },              // 403
6823     { 0x4000, { 16130, 0x403, 0 } }                 // 404
6824 };
6825 static const sal_uInt16 mso_sptTextCanUpSegm[] =
6826 {
6827     0x4000, 0x2002, 0x8000,
6828     0x4000, 0x2002, 0x8000
6829 };
6830 static const SvxMSDffHandle mso_sptTextCanUpHandle[] =
6831 {
6832     {   MSDFF_HANDLE_FLAGS_RANGE,
6833         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
6834 };
6835 static const sal_Int32 mso_sptTextCanUpDefault[] =
6836 {
6837     1, 18500
6838 };
6839 static const mso_CustomShape msoTextCanUp =
6840 {
6841     (SvxMSDffVertPair*)mso_sptTextCanUpVert, sizeof( mso_sptTextCanUpVert ) / sizeof( SvxMSDffVertPair ),
6842     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6843     (SvxMSDffCalculationData*)mso_sptTextCanUpCalc, sizeof( mso_sptTextCanUpCalc ) / sizeof( SvxMSDffCalculationData ),
6844     (sal_Int32*)mso_sptTextCanUpDefault,
6845     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6846     21600, 21600,
6847     0x80000000, 0x80000000,
6848     NULL, 0,
6849     (SvxMSDffHandle*)mso_sptTextCanUpHandle, sizeof( mso_sptTextCanUpHandle ) / sizeof( SvxMSDffHandle )
6850 };
6851 
6852 static const SvxMSDffVertPair mso_sptTextCanDownVert[] =
6853 {
6854     { 0, 0 }, { 900, 2 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 2 MSO_I }, { 21600, 0 },
6855     { 0, 1 MSO_I }, { 900, 21600 }, { 7100, 21600 }, { 10800, 21600 }, { 14500, 21600 }, { 20700, 21600 }, { 21600, 1 MSO_I }
6856 };
6857 static const SvxMSDffCalculationData mso_sptTextCanDownCalc[] =
6858 {
6859     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },     // 400
6860     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401
6861     { 0x4001, { 5470, 0x400, 7200 } }               // 402
6862 };
6863 static const SvxMSDffHandle mso_sptTextCanDownHandle[] =
6864 {
6865     {   MSDFF_HANDLE_FLAGS_RANGE,
6866         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
6867 };
6868 static const sal_Int32 mso_sptTextCanDownDefault[] =
6869 {
6870     1, 3100
6871 };
6872 static const mso_CustomShape msoTextCanDown =
6873 {
6874     (SvxMSDffVertPair*)mso_sptTextCanDownVert, sizeof( mso_sptTextCanDownVert ) / sizeof( SvxMSDffVertPair ),
6875     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6876     (SvxMSDffCalculationData*)mso_sptTextCanDownCalc, sizeof( mso_sptTextCanDownCalc ) / sizeof( SvxMSDffCalculationData ),
6877     (sal_Int32*)mso_sptTextCanDownDefault,
6878     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6879     21600, 21600,
6880     0x80000000, 0x80000000,
6881     NULL, 0,
6882     (SvxMSDffHandle*)mso_sptTextCanDownHandle, sizeof( mso_sptTextCanDownHandle ) / sizeof( SvxMSDffHandle )
6883 };
6884 
6885 static const SvxMSDffVertPair mso_sptTextInflateVert[] =
6886 {
6887     { 0, 0 MSO_I }, { 4100, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 17500, 1 MSO_I }, { 21600, 0 MSO_I },
6888     { 0, 2 MSO_I }, { 4100, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 17500, 3 MSO_I }, { 21600, 2 MSO_I }
6889 };
6890 static const SvxMSDffCalculationData mso_sptTextInflateCalc[] =
6891 {
6892     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6893     { 0x4001, { 1530, 0x400, 4650 } },          // 401
6894     { 0x8000, { 21600, 0, 0x400 } },            // 402
6895     { 0x8000, { 21600, 0, 0x401 } }             // 403
6896 };
6897 static const SvxMSDffHandle mso_sptTextInflateHandle[] =
6898 {
6899     {   MSDFF_HANDLE_FLAGS_RANGE,
6900         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4650 }
6901 };
6902 static const sal_Int32 mso_sptTextInflateDefault[] =
6903 {
6904     1, 2950
6905 };
6906 static const mso_CustomShape msoTextInflate =
6907 {
6908     (SvxMSDffVertPair*)mso_sptTextInflateVert, sizeof( mso_sptTextInflateVert ) / sizeof( SvxMSDffVertPair ),
6909     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6910     (SvxMSDffCalculationData*)mso_sptTextInflateCalc, sizeof( mso_sptTextInflateCalc ) / sizeof( SvxMSDffCalculationData ),
6911     (sal_Int32*)mso_sptTextInflateDefault,
6912     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6913     21600, 21600,
6914     0x80000000, 0x80000000,
6915     NULL, 0,
6916     (SvxMSDffHandle*)mso_sptTextInflateHandle, sizeof( mso_sptTextInflateHandle ) / sizeof( SvxMSDffHandle )
6917 };
6918 
6919 static const SvxMSDffVertPair mso_sptTextDeflateVert[] =
6920 {
6921     { 0, 0 }, { 3500, 1 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 18100, 1 MSO_I }, { 21600, 0 },
6922     { 0, 21600 }, { 3500, 3 MSO_I }, { 7100, 2 MSO_I }, { 10800, 2 MSO_I }, { 14500, 2 MSO_I }, { 18100, 3 MSO_I }, { 21600, 21600 }
6923 };
6924 static const SvxMSDffCalculationData mso_sptTextDeflateCalc[] =
6925 {
6926     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6927     { 0x2001, { 0x400, 5320, 7100 } },          // 401
6928     { 0x8000, { 21600, 0, 0x400 } },            // 402
6929     { 0x8000, { 21600, 0, 0x401 } }             // 403
6930 };
6931 static const SvxMSDffHandle mso_sptTextDeflateHandle[] =
6932 {
6933     {   MSDFF_HANDLE_FLAGS_RANGE,
6934         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 8100 }
6935 };
6936 static const mso_CustomShape msoTextDeflate =
6937 {
6938     (SvxMSDffVertPair*)mso_sptTextDeflateVert, sizeof( mso_sptTextDeflateVert ) / sizeof( SvxMSDffVertPair ),
6939     (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
6940     (SvxMSDffCalculationData*)mso_sptTextDeflateCalc, sizeof( mso_sptTextDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
6941     (sal_Int32*)mso_sptDefault8100,
6942     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6943     21600, 21600,
6944     0x80000000, 0x80000000,
6945     NULL, 0,
6946     (SvxMSDffHandle*)mso_sptTextDeflateHandle, sizeof( mso_sptTextDeflateHandle ) / sizeof( SvxMSDffHandle )
6947 };
6948 
6949 static const SvxMSDffVertPair mso_sptTextInflateBottomVert[] =
6950 {
6951     { 0, 0 }, { 21600, 0 },
6952     { 0, 0 MSO_I }, { 3500, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 18100, 3 MSO_I }, { 21600, 0 MSO_I }
6953 };
6954 static const SvxMSDffCalculationData mso_sptTextInflateBottomCalc[] =
6955 {
6956     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6957     { 0x2000, { 0x400, 0, 11150 } },            // 401 0->10450
6958     { 0x2001, { 0x401, 3900, 10450 } },         // 402
6959     { 0x2000, { 0x402, 17700, 0 } }             // 403
6960 };
6961 static const sal_uInt16 mso_sptTextInflateBottomSegm[] =
6962 {
6963     0x4000, 0x0001, 0x8000,
6964     0x4000, 0x2002, 0x8000
6965 };
6966 static const SvxMSDffHandle mso_sptTextInflateBottomHandle[] =
6967 {
6968     {   MSDFF_HANDLE_FLAGS_RANGE,
6969         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 11150, 21600 }
6970 };
6971 static const sal_Int32 mso_sptTextInflateBottomDefault[] =
6972 {
6973     1, 14700
6974 };
6975 static const mso_CustomShape msoTextInflateBottom =
6976 {
6977     (SvxMSDffVertPair*)mso_sptTextInflateBottomVert, sizeof( mso_sptTextInflateBottomVert ) / sizeof( SvxMSDffVertPair ),
6978     (sal_uInt16*)mso_sptTextInflateBottomSegm, sizeof( mso_sptTextInflateBottomSegm ) >> 1,
6979     (SvxMSDffCalculationData*)mso_sptTextInflateBottomCalc, sizeof( mso_sptTextInflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
6980     (sal_Int32*)mso_sptTextInflateBottomDefault,
6981     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6982     21600, 21600,
6983     0x80000000, 0x80000000,
6984     NULL, 0,
6985     (SvxMSDffHandle*)mso_sptTextInflateBottomHandle, sizeof( mso_sptTextInflateBottomHandle ) / sizeof( SvxMSDffHandle )
6986 };
6987 
6988 static const SvxMSDffVertPair mso_sptTextDeflateBottomVert[] =
6989 {
6990     { 0, 0 }, { 21600, 0 },
6991     { 0, 21600 }, { 2900, 3 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 3 MSO_I }, { 21600, 21600 }
6992 };
6993 static const SvxMSDffCalculationData mso_sptTextDeflateBottomCalc[] =
6994 {
6995     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
6996     { 0x2000, { 0x400, 0, 1350 } },             // 401 0->20250
6997     { 0x2001, { 0x401, 12070, 20250 } },        // 402
6998     { 0x2000, { 0x402, 9530, 0 } }              // 403
6999 };
7000 static const sal_uInt16 mso_sptTextDeflateBottomSegm[] =
7001 {
7002     0x4000, 0x0001, 0x8000,
7003     0x4000, 0x2002, 0x8000
7004 };
7005 static const SvxMSDffHandle mso_sptTextDeflateBottomHandle[] =
7006 {
7007     {   MSDFF_HANDLE_FLAGS_RANGE,
7008         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1350, 21600 }
7009 };
7010 static const sal_Int32 mso_sptTextDeflateBottomDefault[] =
7011 {
7012     1, 11500
7013 };
7014 static const mso_CustomShape msoTextDeflateBottom =
7015 {
7016     (SvxMSDffVertPair*)mso_sptTextDeflateBottomVert, sizeof( mso_sptTextDeflateBottomVert ) / sizeof( SvxMSDffVertPair ),
7017     (sal_uInt16*)mso_sptTextDeflateBottomSegm, sizeof( mso_sptTextDeflateBottomSegm ) >> 1,
7018     (SvxMSDffCalculationData*)mso_sptTextDeflateBottomCalc, sizeof( mso_sptTextDeflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
7019     (sal_Int32*)mso_sptTextDeflateBottomDefault,
7020     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7021     21600, 21600,
7022     0x80000000, 0x80000000,
7023     NULL, 0,
7024     (SvxMSDffHandle*)mso_sptTextDeflateBottomHandle, sizeof( mso_sptTextDeflateBottomHandle ) / sizeof( SvxMSDffHandle )
7025 };
7026 
7027 static const SvxMSDffVertPair mso_sptTextInflateTopVert[] =
7028 {
7029     { 0, 0 MSO_I }, { 3500, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 18100, 1 MSO_I }, { 21600, 0 MSO_I },
7030     { 0, 21600 }, { 21600, 21600 }
7031 };
7032 static const SvxMSDffCalculationData mso_sptTextInflateTopCalc[] =
7033 {
7034     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7035     { 0x2001, { 0x400, 3900, 10450 } }          // 401
7036 };
7037 static const sal_uInt16 mso_sptTextInflateTopSegm[] =
7038 {
7039     0x4000, 0x2002, 0x8000,
7040     0x4000, 0x0001, 0x8000
7041 };
7042 static const SvxMSDffHandle mso_sptTextInflateTopHandle[] =
7043 {
7044     {   MSDFF_HANDLE_FLAGS_RANGE,
7045         0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10450 }
7046 };
7047 static const sal_Int32 mso_sptTextInflateTopDefault[] =
7048 {
7049     1, 6900
7050 };
7051 static const mso_CustomShape msoTextInflateTop =
7052 {
7053     (SvxMSDffVertPair*)mso_sptTextInflateTopVert, sizeof( mso_sptTextInflateTopVert ) / sizeof( SvxMSDffVertPair ),
7054     (sal_uInt16*)mso_sptTextInflateTopSegm, sizeof( mso_sptTextInflateTopSegm ) >> 1,
7055     (SvxMSDffCalculationData*)mso_sptTextInflateTopCalc, sizeof( mso_sptTextInflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7056     (sal_Int32*)mso_sptTextInflateTopDefault,
7057     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7058     21600, 21600,
7059     0x80000000, 0x80000000,
7060     NULL, 0,
7061     (SvxMSDffHandle*)mso_sptTextInflateTopHandle, sizeof( mso_sptTextInflateTopHandle ) / sizeof( SvxMSDffHandle )
7062 };
7063 
7064 static const SvxMSDffVertPair mso_sptTextDeflateTopVert[] =
7065 {
7066     { 0, 0 }, { 2900, 1 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 1 MSO_I }, { 21600, 0 },
7067     { 0, 21600 }, { 21600, 21600 }
7068 };
7069 static const SvxMSDffCalculationData mso_sptTextDeflateTopCalc[] =
7070 {
7071     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7072     { 0x2001, { 0x400, 12070, 20250 } }         // 402
7073 };
7074 static const sal_uInt16 mso_sptTextDeflateTopSegm[] =
7075 {
7076     0x4000, 0x2002, 0x8000,
7077     0x4000, 0x0001, 0x8000
7078 };
7079 static const SvxMSDffHandle mso_sptTextDeflateTopHandle[] =
7080 {
7081     {   MSDFF_HANDLE_FLAGS_RANGE,
7082         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 20250 }
7083 };
7084 static const sal_Int32 mso_sptTextDeflateTopDefault[] =
7085 {
7086     1, 10100
7087 };
7088 static const mso_CustomShape msoTextDeflateTop =
7089 {
7090     (SvxMSDffVertPair*)mso_sptTextDeflateTopVert, sizeof( mso_sptTextDeflateTopVert ) / sizeof( SvxMSDffVertPair ),
7091     (sal_uInt16*)mso_sptTextDeflateTopSegm, sizeof( mso_sptTextDeflateTopSegm ) >> 1,
7092     (SvxMSDffCalculationData*)mso_sptTextDeflateTopCalc, sizeof( mso_sptTextDeflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7093     (sal_Int32*)mso_sptTextDeflateTopDefault,
7094     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7095     21600, 21600,
7096     0x80000000, 0x80000000,
7097     NULL, 0,
7098     (SvxMSDffHandle*)mso_sptTextDeflateTopHandle, sizeof( mso_sptTextDeflateTopHandle ) / sizeof( SvxMSDffHandle )
7099 };
7100 
7101 static const SvxMSDffVertPair mso_sptTextDeflateInflateVert[] =
7102 {
7103     { 0, 0 }, { 21600, 0 },
7104     { 0, 10100 }, { 3300, 3 MSO_I }, { 7100, 5 MSO_I }, { 10800, 5 MSO_I }, { 14500, 5 MSO_I }, { 18300, 3 MSO_I }, { 21600, 10100 },
7105     { 0, 11500 }, { 3300, 4 MSO_I }, { 7100, 6 MSO_I }, { 10800, 6 MSO_I }, { 14500, 6 MSO_I }, { 18300, 4 MSO_I }, { 21600, 11500 },
7106     { 0, 21600 }, { 21600, 21600 }
7107 };
7108 static const SvxMSDffCalculationData mso_sptTextDeflateInflateCalc[] =
7109 {
7110     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7111     { 0x8000, { 10800, 0, 0x400 } },            // 401
7112     { 0x2001, { 0x401, 5770, 9500 } },          // 402
7113     { 0x8000, { 10100, 0, 0x402 } },            // 403
7114     { 0x8000, { 11500, 0, 0x402 } },            // 404
7115     { 0x2000, { 0x400, 0, 700 } },              // 405
7116     { 0x2000, { 0x400, 700, 0 } }               // 406
7117 };
7118 static const sal_uInt16 mso_sptTextDeflateInflateSegm[] =
7119 {
7120     0x4000, 0x0001, 0x8000,
7121     0x4000, 0x2002, 0x8000,
7122     0x4000, 0x2002, 0x8000,
7123     0x4000, 0x0001, 0x8000
7124 };
7125 static const SvxMSDffHandle mso_sptTextDeflateInflateHandle[] =
7126 {
7127     {   MSDFF_HANDLE_FLAGS_RANGE,
7128         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1300, 20300 }
7129 };
7130 static const sal_Int32 mso_sptTextDeflateInflateDefault[] =
7131 {
7132     1, 6500
7133 };
7134 static const mso_CustomShape msoTextDeflateInflate =
7135 {
7136     (SvxMSDffVertPair*)mso_sptTextDeflateInflateVert, sizeof( mso_sptTextDeflateInflateVert ) / sizeof( SvxMSDffVertPair ),
7137     (sal_uInt16*)mso_sptTextDeflateInflateSegm, sizeof( mso_sptTextDeflateInflateSegm ) >> 1,
7138     (SvxMSDffCalculationData*)mso_sptTextDeflateInflateCalc, sizeof( mso_sptTextDeflateInflateCalc ) / sizeof( SvxMSDffCalculationData ),
7139     (sal_Int32*)mso_sptTextDeflateInflateDefault,
7140     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7141     21600, 21600,
7142     0x80000000, 0x80000000,
7143     NULL, 0,
7144     (SvxMSDffHandle*)mso_sptTextDeflateInflateHandle, sizeof( mso_sptTextDeflateInflateHandle ) / sizeof( SvxMSDffHandle )
7145 };
7146 
7147 static const SvxMSDffVertPair mso_sptTextDeflateInflateDeflateVert[] =
7148 {
7149     { 0, 0 }, { 21600, 0 },
7150     { 0, 6600 }, { 3600, 3 MSO_I }, { 7250, 4 MSO_I }, { 10800, 4 MSO_I }, { 14350, 4 MSO_I }, { 18000, 3 MSO_I }, { 21600, 6600 },
7151     { 0, 7500 }, { 3600, 5 MSO_I }, { 7250, 6 MSO_I }, { 10800, 6 MSO_I }, { 14350, 6 MSO_I }, { 18000, 5 MSO_I }, { 21600, 7500 },
7152     { 0, 14100 }, { 3600, 9 MSO_I }, { 7250, 10 MSO_I }, { 10800, 10 MSO_I }, { 14350, 10 MSO_I }, { 18000, 9 MSO_I }, { 21600, 14100 },
7153     { 0, 15000 }, { 3600, 7 MSO_I }, { 7250, 8 MSO_I }, { 10800, 8 MSO_I }, { 14350, 8 MSO_I }, { 18000, 7 MSO_I }, { 21600, 15000 },
7154     { 0, 21600 }, { 21600, 21600 }
7155 };
7156 static const SvxMSDffCalculationData mso_sptTextDeflateInflateDeflateCalc[] =
7157 {
7158     { 0x2000, { DFF_Prop_adjustValue, 0, 850 } },       // 400
7159     { 0x2001, { 0x400, 6120, 8700 } },
7160     { 0x2000, { 0x401, 0, 4280 } },
7161     { 0x4000, { 6600, 0x402, 0 } },
7162     { 0x2000, { DFF_Prop_adjustValue, 0, 450 } },       // 404
7163     { 0x2000, { 0x403, 900, 0 } },                      // 405
7164     { 0x2000, { 0x404, 900, 0 } },                      // 406
7165     { 0x8000, { 21600, 0, 0x403 } },                    // 407
7166     { 0x8000, { 21600, 0, 0x404 } },                    // 408
7167     { 0x8000, { 21600, 0, 0x405 } },                    // 409
7168     { 0x8000, { 21600, 0, 0x406 } }                     // 410
7169 };
7170 static const sal_uInt16 mso_sptTextDeflateInflateDeflateSegm[] =
7171 {
7172     0x4000, 0x0001, 0x8000,
7173     0x4000, 0x2002, 0x8000,
7174     0x4000, 0x2002, 0x8000,
7175     0x4000, 0x2002, 0x8000,
7176     0x4000, 0x2002, 0x8000,
7177     0x4000, 0x0001, 0x8000
7178 };
7179 static const SvxMSDffHandle mso_sptTextDeflateInflateDeflateHandle[] =
7180 {
7181     {   MSDFF_HANDLE_FLAGS_RANGE,
7182         10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 850, 9550 }
7183 };
7184 static const sal_Int32 mso_sptTextDeflateInflateDeflateDefault[] =
7185 {
7186     1, 6050
7187 };
7188 static const mso_CustomShape msoTextDeflateInflateDeflate =
7189 {
7190     (SvxMSDffVertPair*)mso_sptTextDeflateInflateDeflateVert, sizeof( mso_sptTextDeflateInflateDeflateVert ) / sizeof( SvxMSDffVertPair ),
7191     (sal_uInt16*)mso_sptTextDeflateInflateDeflateSegm, sizeof( mso_sptTextDeflateInflateDeflateSegm ) >> 1,
7192     (SvxMSDffCalculationData*)mso_sptTextDeflateInflateDeflateCalc, sizeof( mso_sptTextDeflateInflateDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
7193     (sal_Int32*)mso_sptTextDeflateInflateDeflateDefault,
7194     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7195     21600, 21600,
7196     0x80000000, 0x80000000,
7197     NULL, 0,
7198     (SvxMSDffHandle*)mso_sptTextDeflateInflateDeflateHandle, sizeof( mso_sptTextDeflateInflateDeflateHandle ) / sizeof( SvxMSDffHandle )
7199 };
7200 
7201 static const SvxMSDffVertPair mso_sptTextWave1Vert[] =  // adjustment1 : 0 - 4459
7202 {                                                   // adjustment2 : 8640 - 12960
7203     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7204     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7205 };
7206 static const sal_uInt16 mso_sptTextWave1Segm[] =
7207 {
7208     0x4000, 0x2001, 0x8000,
7209     0x4000, 0x2001, 0x8000
7210 };
7211 static const mso_CustomShape msoTextWave1 =
7212 {
7213     (SvxMSDffVertPair*)mso_sptTextWave1Vert, sizeof( mso_sptTextWave1Vert ) / sizeof( SvxMSDffVertPair ),
7214     (sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7215     (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7216     (sal_Int32*)mso_sptWaveDefault,
7217     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7218     21600, 21600,
7219     0x80000000, 0x80000000,
7220     (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7221     (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7222 };
7223 
7224 static const SvxMSDffVertPair mso_sptTextWave2Vert[] =  // adjustment1 : 0 - 4459
7225 {                                                   // adjustment2 : 8640 - 12960
7226     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7227     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7228 };
7229 static const mso_CustomShape msoTextWave2 =
7230 {
7231     (SvxMSDffVertPair*)mso_sptTextWave2Vert, sizeof( mso_sptTextWave2Vert ) / sizeof( SvxMSDffVertPair ),
7232     (sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7233     (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7234     (sal_Int32*)mso_sptWaveDefault,
7235     (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7236     21600, 21600,
7237     0x80000000, 0x80000000,
7238     (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7239     (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7240 };
7241 
7242 static const SvxMSDffVertPair mso_sptTextWave3Vert[] =  // adjustment1 : 0 - 2230
7243 {                                                       // adjustment2 : 8640 - 12960
7244     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7245     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7246 };
7247 static const sal_uInt16 mso_sptTextWave3Segm[] =
7248 {
7249     0x4000, 0x2002, 0x8000,
7250     0x4000, 0x2002, 0x8000
7251 };
7252 static const mso_CustomShape msoTextWave3 =
7253 {
7254     (SvxMSDffVertPair*)mso_sptTextWave3Vert, sizeof( mso_sptTextWave3Vert ) / sizeof( SvxMSDffVertPair ),
7255     (sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7256     (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7257     (sal_Int32*)mso_sptDoubleWaveDefault,
7258     (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7259     21600, 21600,
7260     0x80000000, 0x80000000,
7261     (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7262     (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7263 };
7264 
7265 static const SvxMSDffVertPair mso_sptTextWave4Vert[] =  // adjustment1 : 0 - 2230
7266 {                                                       // adjustment2 : 8640 - 12960
7267     { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 0x1e MSO_I, 9 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7268     { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 0x20 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7269 };
7270 static const mso_CustomShape msoTextWave4 =
7271 {
7272     (SvxMSDffVertPair*)mso_sptTextWave4Vert, sizeof( mso_sptTextWave4Vert ) / sizeof( SvxMSDffVertPair ),
7273     (sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7274     (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7275     (sal_Int32*)mso_sptDoubleWaveDefault,
7276     (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7277     21600, 21600,
7278     0x80000000, 0x80000000,
7279     (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7280     (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7281 };
7282 
7283 static const sal_Int32 mso_sptCalloutDefault1[] =
7284 {
7285     4, -1800, 24500, -1800, 4000
7286 };
7287 static const sal_Int32 mso_sptCalloutDefault2[] =
7288 {
7289     4, -8300, 24500, -1800, 4000
7290 };
7291 static const sal_Int32 mso_sptCalloutDefault3[] =
7292 {
7293     6, -10000, 24500, -3600, 4000, -1800, 4000
7294 };
7295 static const sal_Int32 mso_sptCalloutDefault4[] =
7296 {
7297     8, 23400, 24500, 25200, 21600, 25200, 4000, 23400, 4000
7298 };
7299 static const SvxMSDffVertPair mso_sptCalloutVert1[] =
7300 {
7301     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }
7302 };
7303 static const SvxMSDffHandle mso_sptCalloutHandle1[] =
7304 {
7305     {   0,
7306         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7307     {   0,
7308         0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7309 };
7310 static const sal_uInt16 mso_sptCalloutSegm1a[] =
7311 {
7312     0x4000, 0x0003, 0x6000, 0x8000,
7313     0x4000, 0x0001, 0x8000
7314 };
7315 static const sal_uInt16 mso_sptCalloutSegm1b[] =
7316 {
7317     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7318     0x4000, 0x0001, 0x8000
7319 };
7320 static const SvxMSDffVertPair mso_sptCallout1Vert[] =
7321 {
7322     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 0 }, { 2 MSO_I, 21600 }
7323 };
7324 static const sal_uInt16 mso_sptCallout1Segm1a[] =
7325 {
7326     0x4000, 0x0003, 0x6000, 0x8000,
7327     0x4000, 0x0001, 0x8000,
7328     0x4000, 0x0001, 0x8000
7329 };
7330 static const sal_uInt16 mso_sptCallout1Segm1b[] =
7331 {
7332     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7333     0x4000, 0x0001, 0x8000,
7334     0x4000, 0x0001, 0x8000
7335 };
7336 static const SvxMSDffVertPair mso_sptCallout2Verta[] =
7337 {
7338     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }
7339 };
7340 static const SvxMSDffVertPair mso_sptCallout2Vertb[] =
7341 {
7342     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 4 MSO_I, 0 }, { 4 MSO_I, 21600 }
7343 };
7344 static const SvxMSDffHandle mso_sptCalloutHandle2[] =
7345 {
7346     {   0,
7347         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7348     {   0,
7349         0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7350     {   0,
7351         0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7352 };
7353 static const sal_uInt16 mso_sptCallout2Segm1a[] =
7354 {
7355     0x4000, 0x0003, 0x6000, 0x8000,
7356     0x4000, 0x0001, 0x8000,
7357     0x4000, 0x0001, 0x8000,
7358     0x4000, 0x0001, 0x8000
7359 };
7360 static const sal_uInt16 mso_sptCallout2Segm1b[] =
7361 {
7362     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7363     0x4000, 0x0001, 0x8000,
7364     0x4000, 0x0001, 0x8000,
7365     0x4000, 0x0001, 0x8000
7366 };
7367 static const sal_uInt16 mso_sptCallout2Segm1c[] =
7368 {
7369     0x4000, 0x0003, 0x6000, 0x8000,
7370     0x4000, 0x0001, 0x8000,
7371     0x4000, 0x0001, 0x8000,
7372     0x4000, 0x0001, 0x8000,
7373     0x4000, 0x0001, 0x8000
7374 };
7375 static const sal_uInt16 mso_sptCallout2Segm1d[] =
7376 {
7377     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7378     0x4000, 0x0001, 0x8000,
7379     0x4000, 0x0001, 0x8000,
7380     0x4000, 0x0001, 0x8000,
7381     0x4000, 0x0001, 0x8000
7382 };
7383 static const SvxMSDffVertPair mso_sptCallout3Verta[] =
7384 {
7385     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
7386 };
7387 static const SvxMSDffVertPair mso_sptCallout3Vertb[] =
7388 {
7389     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 6 MSO_I, 0 }, { 6 MSO_I, 21600 }
7390 };
7391 static const SvxMSDffHandle mso_sptCalloutHandle3[] =
7392 {
7393     {   0,
7394         0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7395     {   0,
7396         0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7397     {   0,
7398         0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7399     {   0,
7400         0x106, 0x107, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7401 };
7402 static const sal_uInt16 mso_sptCallout3Segm1a[] =
7403 {
7404     0x4000, 0x0003, 0x6000, 0x8000,
7405     0x4000, 0xaa00, 0x0003, 0x8000          // NO_FILL
7406 };
7407 static const sal_uInt16 mso_sptCallout3Segm1b[] =
7408 {
7409     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7410     0x4000, 0xaa00, 0x0003, 0x8000          // NO FILL
7411 };
7412 static const sal_uInt16 mso_sptCallout3Segm1c[] =
7413 {
7414     0x4000, 0x0003, 0x6000, 0x8000,
7415     0x4000, 0xaa00, 0x0003, 0x8000,         // NO FILL
7416     0x4000, 0x0001, 0x8000
7417 };
7418 static const sal_uInt16 mso_sptCallout3Segm1d[] =
7419 {
7420     0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7421     0x4000, 0xaa00, 0x0003, 0x8000,         // NO FILL
7422     0x4000, 0x0001, 0x8000
7423 };
7424 
7425 static const SvxMSDffCalculationData mso_sptCalloutCalc[] =
7426 {
7427     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7428     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7429     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7430     { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
7431     { 0x2000, { DFF_Prop_adjust5Value, 0, 0 } },
7432     { 0x2000, { DFF_Prop_adjust6Value, 0, 0 } },
7433     { 0x2000, { DFF_Prop_adjust7Value, 0, 0 } },
7434     { 0x2000, { DFF_Prop_adjust8Value, 0, 0 } }
7435 };
7436 
7437 static const mso_CustomShape msoCallout90 =
7438 {
7439     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7440     (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7441     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7442     (sal_Int32*)mso_sptCalloutDefault1,
7443     NULL, 0,
7444     21600, 21600,
7445     0x80000000, 0x80000000,
7446     NULL, 0,
7447     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7448 };
7449 static const mso_CustomShape msoCallout1 =
7450 {
7451     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7452     (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7453     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7454     (sal_Int32*)mso_sptCalloutDefault2,
7455     NULL, 0,
7456     21600, 21600,
7457     0x80000000, 0x80000000,
7458     NULL, 0,
7459     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7460 };
7461 static const mso_CustomShape msoCallout2 =
7462 {
7463     (SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7464     (sal_uInt16*)mso_sptCallout2Segm1b, sizeof( mso_sptCallout2Segm1b ) >> 1,
7465     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7466     (sal_Int32*)mso_sptCalloutDefault3,
7467     NULL, 0,
7468     21600, 21600,
7469     0x80000000, 0x80000000,
7470     NULL, 0,
7471     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7472 };
7473 static const mso_CustomShape msoCallout3 =
7474 {
7475     (SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7476     (sal_uInt16*)mso_sptCallout3Segm1b, sizeof( mso_sptCallout3Segm1b ) >> 1,
7477     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7478     (sal_Int32*)mso_sptCalloutDefault4,
7479     NULL, 0,
7480     21600, 21600,
7481     0x80000000, 0x80000000,
7482     NULL, 0,
7483     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7484 };
7485 static const mso_CustomShape msoAccentCallout90 =
7486 {
7487     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7488     (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7489     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7490     (sal_Int32*)mso_sptCalloutDefault1,
7491     NULL, 0,
7492     21600, 21600,
7493     0x80000000, 0x80000000,
7494     NULL, 0,
7495     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7496 };
7497 static const mso_CustomShape msoAccentCallout1 =
7498 {
7499     (SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7500     (sal_uInt16*)mso_sptCallout1Segm1b, sizeof( mso_sptCallout1Segm1b ) >> 1,
7501     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7502     (sal_Int32*)mso_sptCalloutDefault2,
7503     NULL, 0,
7504     21600, 21600,
7505     0x80000000, 0x80000000,
7506     NULL, 0,
7507     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7508 };
7509 static const mso_CustomShape msoAccentCallout2 =
7510 {
7511     (SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7512     (sal_uInt16*)mso_sptCallout2Segm1d, sizeof( mso_sptCallout2Segm1d ) >> 1,
7513     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7514     (sal_Int32*)mso_sptCalloutDefault3,
7515     NULL, 0,
7516     21600, 21600,
7517     0x80000000, 0x80000000,
7518     NULL, 0,
7519     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7520 };
7521 static const mso_CustomShape msoAccentCallout3 =
7522 {
7523     (SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7524     (sal_uInt16*)mso_sptCallout3Segm1d, sizeof( mso_sptCallout3Segm1d ) >> 1,
7525     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7526     (sal_Int32*)mso_sptCalloutDefault4,
7527     NULL, 0,
7528     21600, 21600,
7529     0x80000000, 0x80000000,
7530     NULL, 0,
7531     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7532 };
7533 static const mso_CustomShape msoBorderCallout90 =
7534 {
7535     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7536     (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7537     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7538     (sal_Int32*)mso_sptCalloutDefault1,
7539     NULL, 0,
7540     21600, 21600,
7541     0x80000000, 0x80000000,
7542     NULL, 0,
7543     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7544 };
7545 static const mso_CustomShape msoBorderCallout1 =
7546 {
7547     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7548     (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7549     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7550     (sal_Int32*)mso_sptCalloutDefault2,
7551     NULL, 0,
7552     21600, 21600,
7553     0x80000000, 0x80000000,
7554     NULL, 0,
7555     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7556 };
7557 static const mso_CustomShape msoBorderCallout2 =
7558 {
7559     (SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7560     (sal_uInt16*)mso_sptCallout2Segm1a, sizeof( mso_sptCallout2Segm1a ) >> 1,
7561     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7562     (sal_Int32*)mso_sptCalloutDefault3,
7563     NULL, 0,
7564     21600, 21600,
7565     0x80000000, 0x80000000,
7566     NULL, 0,
7567     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7568 };
7569 static const mso_CustomShape msoBorderCallout3 =
7570 {
7571     (SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7572     (sal_uInt16*)mso_sptCallout3Segm1a, sizeof( mso_sptCallout3Segm1a ) >> 1,
7573     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7574     (sal_Int32*)mso_sptCalloutDefault4,
7575     NULL, 0,
7576     21600, 21600,
7577     0x80000000, 0x80000000,
7578     NULL, 0,
7579     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7580 };
7581 static const mso_CustomShape msoAccentBorderCallout90 =
7582 {
7583     (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7584     (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7585     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7586     (sal_Int32*)mso_sptCalloutDefault1,
7587     NULL, 0,
7588     21600, 21600,
7589     0x80000000, 0x80000000,
7590     NULL, 0,
7591     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7592 };
7593 static const mso_CustomShape msoAccentBorderCallout1 =
7594 {
7595     (SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7596     (sal_uInt16*)mso_sptCallout1Segm1a, sizeof( mso_sptCallout1Segm1a ) >> 1,
7597     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7598     (sal_Int32*)mso_sptCalloutDefault2,
7599     NULL, 0,
7600     21600, 21600,
7601     0x80000000, 0x80000000,
7602     NULL, 0,
7603     (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7604 };
7605 static const mso_CustomShape msoAccentBorderCallout2 =
7606 {
7607     (SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7608     (sal_uInt16*)mso_sptCallout2Segm1c, sizeof( mso_sptCallout2Segm1c ) >> 1,
7609     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7610     (sal_Int32*)mso_sptCalloutDefault3,
7611     NULL, 0,
7612     21600, 21600,
7613     0x80000000, 0x80000000,
7614     NULL, 0,
7615     (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7616 };
7617 static const mso_CustomShape msoAccentBorderCallout3 =
7618 {
7619     (SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7620     (sal_uInt16*)mso_sptCallout3Segm1c, sizeof( mso_sptCallout3Segm1c ) >> 1,
7621     (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7622     (sal_Int32*)mso_sptCalloutDefault4,
7623     NULL, 0,
7624     21600, 21600,
7625     0x80000000, 0x80000000,
7626     NULL, 0,
7627     (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7628 };
7629 
7630 static const SvxMSDffVertPair mso_sptStraightConnector1Vert[] =
7631 {
7632     { 0, 0 }, { 21600, 21600 }
7633 };
7634 static const sal_uInt16 mso_sptStraightConnector1Segm[] =
7635 {
7636     0x4000, 0x0001, 0x8000
7637 };
7638 static const mso_CustomShape msoStraightConnector1 =
7639 {
7640     (SvxMSDffVertPair*)mso_sptStraightConnector1Vert, sizeof( mso_sptStraightConnector1Vert ) / sizeof( SvxMSDffVertPair ),
7641     (sal_uInt16*)mso_sptStraightConnector1Segm, sizeof( mso_sptStraightConnector1Segm ) >> 1,
7642     (SvxMSDffCalculationData*)NULL, 0,
7643     (sal_Int32*)NULL,
7644     NULL, 0,
7645     21600, 21600,
7646     0x80000000, 0x80000000,
7647     NULL, 0,
7648     (SvxMSDffHandle*)NULL, 0
7649 };
7650 
7651 static const SvxMSDffVertPair mso_sptBentConnector2Vert[] =
7652 {
7653     { 0, 0 }, { 21600, 0 }, { 21600, 21600 }
7654 };
7655 static const sal_uInt16 mso_sptBentConnector2Segm[] =
7656 {
7657     0x4000, 0x0002, 0x8000
7658 };
7659 static const mso_CustomShape msoBentConnector2 =
7660 {
7661     (SvxMSDffVertPair*)mso_sptBentConnector2Vert, sizeof( mso_sptBentConnector2Vert ) / sizeof( SvxMSDffVertPair ),
7662     (sal_uInt16*)mso_sptBentConnector2Segm, sizeof( mso_sptBentConnector2Segm ) >> 1,
7663     (SvxMSDffCalculationData*)NULL, 0,
7664     (sal_Int32*)NULL,
7665     NULL, 0,
7666     21600, 21600,
7667     0x80000000, 0x80000000,
7668     NULL, 0,
7669     (SvxMSDffHandle*)NULL, 0
7670 };
7671 
7672 static const SvxMSDffVertPair mso_sptBentConnector3Vert[] =
7673 {
7674     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 21600 }, { 21600, 21600 }
7675 };
7676 static const sal_uInt16 mso_sptBentConnector3Segm[] =
7677 {
7678     0x4000, 0x0003, 0x8000
7679 };
7680 static const SvxMSDffCalculationData mso_sptBentConnector3Calc[] =
7681 {
7682     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
7683 };
7684 static const sal_Int32 mso_sptBentConnector3Default[] =
7685 {
7686     1, 10800
7687 };
7688 static const SvxMSDffHandle mso_sptBentConnector3Handle[] =
7689 {
7690     {   MSDFF_HANDLE_FLAGS_RANGE,
7691         0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7692 };
7693 static const mso_CustomShape msoBentConnector3 =
7694 {
7695     (SvxMSDffVertPair*)mso_sptBentConnector3Vert, sizeof( mso_sptBentConnector3Vert ) / sizeof( SvxMSDffVertPair ),
7696     (sal_uInt16*)mso_sptBentConnector3Segm, sizeof( mso_sptBentConnector3Segm ) >> 1,
7697     (SvxMSDffCalculationData*)mso_sptBentConnector3Calc, sizeof( mso_sptBentConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
7698     (sal_Int32*)mso_sptBentConnector3Default,
7699     NULL, 0,
7700     21600, 21600,
7701     0x80000000, 0x80000000,
7702     NULL, 0,
7703     (SvxMSDffHandle*)mso_sptBentConnector3Handle, sizeof( mso_sptBentConnector3Handle ) / sizeof( SvxMSDffHandle )
7704 };
7705 
7706 static const SvxMSDffVertPair mso_sptBentConnector4Vert[] =
7707 {
7708     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I }, { 21600, 21600 }
7709 };
7710 static const sal_uInt16 mso_sptBentConnector4Segm[] =
7711 {
7712     0x4000, 0x0004, 0x8000
7713 };
7714 static const SvxMSDffCalculationData mso_sptBentConnector4Calc[] =
7715 {
7716     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7717     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7718     { 0x2000, { 0x400, 21600, 0 } },
7719     { 0x2001, { 0x402, 1, 2 } },
7720     { 0x2001, { 0x401, 1, 2 } }
7721 };
7722 static const sal_Int32 mso_sptBentConnector4Default[] =
7723 {
7724     2, 10800, 10800
7725 };
7726 static const SvxMSDffHandle mso_sptBentConnector4Handle[] =
7727 {
7728     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7729         0x100, 4 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 4 + 3, 4 + 3 },
7730     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7731         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
7732 };
7733 static const mso_CustomShape msoBentConnector4 =
7734 {
7735     (SvxMSDffVertPair*)mso_sptBentConnector4Vert, sizeof( mso_sptBentConnector4Vert ) / sizeof( SvxMSDffVertPair ),
7736     (sal_uInt16*)mso_sptBentConnector4Segm, sizeof( mso_sptBentConnector4Segm ) >> 1,
7737     (SvxMSDffCalculationData*)mso_sptBentConnector4Calc, sizeof( mso_sptBentConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
7738     (sal_Int32*)mso_sptBentConnector4Default,
7739     NULL, 0,
7740     21600, 21600,
7741     0x80000000, 0x80000000,
7742     NULL, 0,
7743     (SvxMSDffHandle*)mso_sptBentConnector4Handle, sizeof( mso_sptBentConnector4Handle ) / sizeof( SvxMSDffHandle )
7744 };
7745 
7746 static const SvxMSDffVertPair mso_sptBentConnector5Vert[] =
7747 {
7748     { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 4 MSO_I }, { 1 MSO_I, 21600 }, { 21600, 21600 }
7749 };
7750 static const sal_uInt16 mso_sptBentConnector5Segm[] =
7751 {
7752     0x4000, 0x0005, 0x8000
7753 };
7754 static const SvxMSDffCalculationData mso_sptBentConnector5Calc[] =
7755 {
7756     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7757     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7758     { 0x6000, { 0x400, 0x401, 0 } },
7759     { 0x2001, { 0x402, 1, 2 } },
7760     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7761     { 0x2001, { 0x404, 1, 2 } },
7762     { 0x4000, { 21600, 0x404, 0 } },
7763     { 0x2001, { 0x406, 1, 2 } }
7764 };
7765 static const sal_Int32 mso_sptBentConnector5Default[] =
7766 {
7767     3, 10800, 10800, 10800
7768 };
7769 static const SvxMSDffHandle mso_sptBentConnector5Handle[] =
7770 {
7771     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7772         0x100, 5 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 5 + 3, 5 + 3 },
7773     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7774         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
7775     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7776         0x102, 7 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 7 + 3, 7 + 3 }
7777 };
7778 static const mso_CustomShape msoBentConnector5 =
7779 {
7780     (SvxMSDffVertPair*)mso_sptBentConnector5Vert, sizeof( mso_sptBentConnector5Vert ) / sizeof( SvxMSDffVertPair ),
7781     (sal_uInt16*)mso_sptBentConnector5Segm, sizeof( mso_sptBentConnector5Segm ) >> 1,
7782     (SvxMSDffCalculationData*)mso_sptBentConnector5Calc, sizeof( mso_sptBentConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
7783     (sal_Int32*)mso_sptBentConnector5Default,
7784     NULL, 0,
7785     21600, 21600,
7786     0x80000000, 0x80000000,
7787     NULL, 0,
7788     (SvxMSDffHandle*)mso_sptBentConnector5Handle, sizeof( mso_sptBentConnector5Handle ) / sizeof( SvxMSDffHandle )
7789 };
7790 
7791 static const SvxMSDffVertPair mso_sptCurvedConnector2Vert[] =
7792 {
7793     { 0, 0 }, { 10800, 0 }, { 21600, 10800 }, { 21600, 21600 }
7794 };
7795 static const sal_uInt16 mso_sptCurvedConnector2Segm[] =
7796 {
7797     0x4000, 0x2001, 0x8000
7798 };
7799 static const mso_CustomShape msoCurvedConnector2 =
7800 {
7801     (SvxMSDffVertPair*)mso_sptCurvedConnector2Vert, sizeof( mso_sptCurvedConnector2Vert ) / sizeof( SvxMSDffVertPair ),
7802     (sal_uInt16*)mso_sptCurvedConnector2Segm, sizeof( mso_sptCurvedConnector2Segm ) >> 1,
7803     (SvxMSDffCalculationData*)NULL, 0,
7804     (sal_Int32*)NULL,
7805     NULL, 0,
7806     21600, 21600,
7807     0x80000000, 0x80000000,
7808     NULL, 0,
7809     (SvxMSDffHandle*)NULL, 0
7810 };
7811 
7812 static const SvxMSDffVertPair mso_sptCurvedConnector3Vert[] =
7813 {
7814     { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 5400 }, { 0 MSO_I, 10800 }, { 0 MSO_I, 16200 }, { 3 MSO_I, 21600 }, { 21600, 21600 }
7815 };
7816 static const sal_uInt16 mso_sptCurvedConnector3Segm[] =
7817 {
7818     0x4000, 0x2002, 0x8000
7819 };
7820 static const SvxMSDffCalculationData mso_sptCurvedConnector3Calc[] =
7821 {
7822     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7823     { 0x2001, { 0x400, 1, 2 } },
7824     { 0x2000, { 0x400, 21600, 0 } },
7825     { 0x2001, { 0x402, 1, 2 } }
7826 };
7827 static const sal_Int32 mso_sptCurvedConnector3Default[] =
7828 {
7829     1, 10800
7830 };
7831 static const SvxMSDffHandle mso_sptCurvedConnector3Handle[] =
7832 {
7833     {   MSDFF_HANDLE_FLAGS_RANGE,
7834         0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7835 };
7836 static const mso_CustomShape msoCurvedConnector3 =
7837 {
7838     (SvxMSDffVertPair*)mso_sptCurvedConnector3Vert, sizeof( mso_sptCurvedConnector3Vert ) / sizeof( SvxMSDffVertPair ),
7839     (sal_uInt16*)mso_sptCurvedConnector3Segm, sizeof( mso_sptCurvedConnector3Segm ) >> 1,
7840     (SvxMSDffCalculationData*)mso_sptCurvedConnector3Calc, sizeof( mso_sptCurvedConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
7841     (sal_Int32*)mso_sptCurvedConnector3Default,
7842     NULL, 0,
7843     21600, 21600,
7844     0x80000000, 0x80000000,
7845     NULL, 0,
7846     (SvxMSDffHandle*)mso_sptCurvedConnector3Handle, sizeof( mso_sptCurvedConnector3Handle ) / sizeof( SvxMSDffHandle )
7847 };
7848 
7849 static const SvxMSDffVertPair mso_sptCurvedConnector4Vert[] =
7850 {
7851     { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 10 MSO_I }, { 0 MSO_I, 9 MSO_I },
7852     { 0 MSO_I, 12 MSO_I }, { 5 MSO_I, 8 MSO_I }, { 3 MSO_I, 8 MSO_I },
7853     { 7 MSO_I, 8 MSO_I }, { 21600, 14 MSO_I }, { 21600, 21600 }
7854 
7855 };
7856 static const sal_uInt16 mso_sptCurvedConnector4Segm[] =
7857 {
7858     0x4000, 0x2003, 0x8000
7859 };
7860 static const SvxMSDffCalculationData mso_sptCurvedConnector4Calc[] =
7861 {
7862     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7863     { 0x2001, { 0x400, 1, 2 } },
7864     { 0x4000, { 21600, 0x400, 0 } },
7865     { 0x2001, { 0x402, 1, 2 } },
7866     { 0x6000, { 0x400, 0x403, 0 } },
7867     { 0x2001, { 0x404, 1, 2 } },
7868     { 0x2000, { 0x403, 21600, 0 } },
7869     { 0x2001, { 0x406, 1, 2 } },
7870     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7871     { 0x2001, { DFF_Prop_adjust2Value, 1, 2 } },
7872     { 0x2001, { DFF_Prop_adjust2Value, 1, 4 } },
7873     { 0x6000, { 0x408, 0x409, 0 } },
7874     { 0x2001, { 0x40b, 1, 2 } },
7875     { 0x2000, { 0x408, 21600, 0 } },
7876     { 0x2001, { 0x40d, 1, 2 } }
7877 };
7878 static const sal_Int32 mso_sptCurvedConnector4Default[] =
7879 {
7880     2, 10800, 10800
7881 };
7882 static const SvxMSDffHandle mso_sptCurvedConnector4Handle[] =
7883 {
7884     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7885         0x100, 9 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 9 + 3, 9 + 3 },
7886     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7887         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
7888 };
7889 static const mso_CustomShape msoCurvedConnector4 =
7890 {
7891     (SvxMSDffVertPair*)mso_sptCurvedConnector4Vert, sizeof( mso_sptCurvedConnector4Vert ) / sizeof( SvxMSDffVertPair ),
7892     (sal_uInt16*)mso_sptCurvedConnector4Segm, sizeof( mso_sptCurvedConnector4Segm ) >> 1,
7893     (SvxMSDffCalculationData*)mso_sptCurvedConnector4Calc, sizeof( mso_sptCurvedConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
7894     (sal_Int32*)mso_sptCurvedConnector4Default,
7895     NULL, 0,
7896     21600, 21600,
7897     0x80000000, 0x80000000,
7898     NULL, 0,
7899     (SvxMSDffHandle*)mso_sptCurvedConnector4Handle, sizeof( mso_sptCurvedConnector4Handle ) / sizeof( SvxMSDffHandle )
7900 };
7901 
7902 static const SvxMSDffVertPair mso_sptCurvedConnector5Vert[] =
7903 {
7904     { 0, 0 },
7905     { 21 MSO_I, 0 }, { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
7906     { 0 MSO_I, 14 MSO_I }, { 6 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
7907     { 8 MSO_I, 4 MSO_I }, { 1 MSO_I, 18 MSO_I }, { 1 MSO_I, 16 MSO_I },
7908     { 1 MSO_I, 20 MSO_I }, { 10 MSO_I, 21600 }, { 21600, 21600 }
7909 };
7910 static const sal_uInt16 mso_sptCurvedConnector5Segm[] =
7911 {
7912     0x4000, 0x2004, 0x8000
7913 };
7914 static const SvxMSDffCalculationData mso_sptCurvedConnector5Calc[] =
7915 {
7916     { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7917     { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7918     { 0x6000, { 0x400, 0x401, 0 } },
7919     { 0x2001, { 0x402, 1, 2 } },
7920     { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7921     { 0x6000, { 0x400, 0x403, 0 } },
7922     { 0x2001, { 0x405, 1, 2 } },
7923     { 0x6000, { 0x401, 0x403, 0 } },
7924     { 0x2001, { 0x407, 1, 2 } },
7925     { 0x2000, { 0x401, 21600, 0 } },
7926     { 0x2001, { 0x409, 1, 2 } },
7927     { 0x2001, { 0x404, 1, 2 } },
7928     { 0x2001, { 0x40b, 1, 2 } },
7929     { 0x6000, { 0x404, 0x40b, 0 } },
7930     { 0x2001, { 0x40d, 1, 2 } },
7931     { 0x2000, { 0x404, 21600, 0 } },
7932     { 0x2001, { 0x40f, 1, 2 } },
7933     { 0x6000, { 0x404, 0x410, 0 } },
7934     { 0x2001, { 0x411, 1, 2 } },
7935     { 0x2000, { 0x410, 21600, 0 } },
7936     { 0x2001, { 0x413, 1, 2 } },
7937     { 0x2001, { 0x400, 1, 2 } }
7938 };
7939 static const sal_Int32 mso_sptCurvedConnector5Default[] =
7940 {
7941     3, 10800, 10800, 10800
7942 };
7943 static const SvxMSDffHandle mso_sptCurvedConnector5Handle[] =
7944 {
7945     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7946         0x100, 11 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 11 + 3, 11 + 3 },
7947     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
7948         3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
7949     {   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
7950         0x102, 16 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 16 + 3, 16 + 3 }
7951 };
7952 static const mso_CustomShape msoCurvedConnector5 =
7953 {
7954     (SvxMSDffVertPair*)mso_sptCurvedConnector5Vert, sizeof( mso_sptCurvedConnector5Vert ) / sizeof( SvxMSDffVertPair ),
7955     (sal_uInt16*)mso_sptCurvedConnector5Segm, sizeof( mso_sptCurvedConnector5Segm ) >> 1,
7956     (SvxMSDffCalculationData*)mso_sptCurvedConnector5Calc, sizeof( mso_sptCurvedConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
7957     (sal_Int32*)mso_sptCurvedConnector5Default,
7958     NULL, 0,
7959     21600, 21600,
7960     0x80000000, 0x80000000,
7961     NULL, 0,
7962     (SvxMSDffHandle*)mso_sptCurvedConnector5Handle, sizeof( mso_sptCurvedConnector5Handle ) / sizeof( SvxMSDffHandle )
7963 };
7964 
7965 const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
7966 {
7967     const mso_CustomShape* pCustomShape = NULL;
7968     switch( eSpType )
7969     {
7970         case mso_sptArc :                       pCustomShape = &msoArc; break;
7971         case mso_sptRectangle :                 pCustomShape = &msoRectangle; break;
7972         case mso_sptParallelogram :             pCustomShape = &msoParallelogram; break;
7973         case mso_sptTrapezoid :                 pCustomShape = &msoTrapezoid; break;
7974         case mso_sptDiamond :                   pCustomShape = &msoDiamond; break;
7975         case mso_sptRoundRectangle :            pCustomShape = &msoRoundRectangle; break;
7976         case mso_sptOctagon :                   pCustomShape = &msoOctagon; break;
7977         case mso_sptIsocelesTriangle :          pCustomShape = &msoIsocelesTriangle; break;
7978         case mso_sptRightTriangle :             pCustomShape = &msoRightTriangle; break;
7979         case mso_sptEllipse :                   pCustomShape = &msoEllipse; break;
7980         case mso_sptHexagon :                   pCustomShape = &msoHexagon; break;
7981         case mso_sptPlus :                      pCustomShape = &msoPlus; break;
7982         case mso_sptPentagon :                  pCustomShape = &msoPentagon; break;
7983         case mso_sptCan :                       pCustomShape = &msoCan; break;
7984         case mso_sptCube :                      pCustomShape = &msoCube; break;
7985         case mso_sptBalloon :                   pCustomShape = &msoBalloon; break;
7986         case mso_sptActionButtonBlank :         pCustomShape = &msoActionButtonBlank; break;
7987         case mso_sptActionButtonHome :          pCustomShape = &msoActionButtonHome; break;
7988         case mso_sptActionButtonHelp :          pCustomShape = &msoActionButtonHelp; break;
7989         case mso_sptActionButtonInformation :   pCustomShape = &msoActionButtonInformation; break;
7990         case mso_sptActionButtonBackPrevious :  pCustomShape = &msoActionButtonBackPrevious; break;
7991         case mso_sptActionButtonForwardNext :   pCustomShape = &msoActionButtonForwardNext; break;
7992         case mso_sptActionButtonBeginning :     pCustomShape = &msoActionButtonBeginning; break;
7993         case mso_sptActionButtonEnd :           pCustomShape = &msoActionButtonEnd; break;
7994         case mso_sptActionButtonReturn :        pCustomShape = &msoActionButtonReturn;  break;
7995         case mso_sptActionButtonDocument :      pCustomShape = &msoActionButtonDocument; break;
7996         case mso_sptActionButtonSound :         pCustomShape = &msoActionButtonSound; break;
7997         case mso_sptActionButtonMovie :         pCustomShape = &msoActionButtonMovie; break;
7998         case mso_sptBevel :                     pCustomShape = &msoBevel; break;
7999         case mso_sptFoldedCorner :              pCustomShape = &msoFoldedCorner; break;
8000         case mso_sptSmileyFace :                pCustomShape = &msoSmileyFace;  break;
8001         case mso_sptDonut :                     pCustomShape = &msoDonut; break;
8002         case mso_sptNoSmoking :                 pCustomShape = &msoNoSmoking; break;
8003         case mso_sptBlockArc :                  pCustomShape = &msoBlockArc; break;
8004         case mso_sptHeart :                     pCustomShape = &msoHeart; break;
8005         case mso_sptLightningBolt :             pCustomShape = &msoLightningBold; break;
8006         case mso_sptSun :                       pCustomShape = &msoSun; break;
8007         case mso_sptMoon :                      pCustomShape = &msoMoon; break;
8008         case mso_sptBracketPair :               pCustomShape = &msoBracketPair; break;
8009         case mso_sptBracePair :                 pCustomShape = &msoBracePair; break;
8010         case mso_sptPlaque :                    pCustomShape = &msoPlaque; break;
8011         case mso_sptLeftBracket :               pCustomShape = &msoLeftBracket; break;
8012         case mso_sptRightBracket :              pCustomShape = &msoRightBracket; break;
8013         case mso_sptLeftBrace :                 pCustomShape = &msoLeftBrace; break;
8014         case mso_sptRightBrace :                pCustomShape = &msoRightBrace; break;
8015         case mso_sptArrow :                     pCustomShape = &msoArrow; break;
8016         case mso_sptUpArrow :                   pCustomShape = &msoUpArrow; break;
8017         case mso_sptDownArrow :                 pCustomShape = &msoDownArrow; break;
8018         case mso_sptLeftArrow :                 pCustomShape = &msoLeftArrow; break;
8019         case mso_sptLeftRightArrow :            pCustomShape = &msoLeftRightArrow; break;
8020         case mso_sptUpDownArrow :               pCustomShape = &msoUpDownArrow; break;
8021         case mso_sptQuadArrow :                 pCustomShape = &msoQuadArrow; break;
8022         case mso_sptLeftRightUpArrow :          pCustomShape = &msoLeftRightUpArrow; break;
8023         case mso_sptBentArrow :                 pCustomShape = &msoBentArrow; break;
8024         case mso_sptUturnArrow :                pCustomShape = &msoUturnArrow; break;
8025         case mso_sptLeftUpArrow :               pCustomShape = &msoLeftUpArrow; break;
8026         case mso_sptBentUpArrow :               pCustomShape = &msoBentUpArrow; break;
8027         case mso_sptCurvedRightArrow :          pCustomShape = &msoCurvedRightArrow; break;
8028         case mso_sptCurvedLeftArrow :           pCustomShape = &msoCurvedLeftArrow; break;
8029         case mso_sptCurvedUpArrow :             pCustomShape = &msoCurvedUpArrow; break;
8030         case mso_sptCurvedDownArrow :           pCustomShape = &msoCurvedDownArrow; break;
8031         case mso_sptStripedRightArrow :         pCustomShape = &msoStripedRightArrow; break;
8032         case mso_sptNotchedRightArrow :         pCustomShape = &msoNotchedRightArrow; break;
8033         case mso_sptHomePlate :                 pCustomShape = &msoHomePlate; break;
8034         case mso_sptChevron :                   pCustomShape = &msoChevron; break;
8035         case mso_sptRightArrowCallout :         pCustomShape = &msoRightArrowCallout; break;
8036         case mso_sptLeftArrowCallout :          pCustomShape = &msoLeftArrowCallout; break;
8037         case mso_sptUpArrowCallout :            pCustomShape = &msoUpArrowCallout; break;
8038         case mso_sptDownArrowCallout :          pCustomShape = &msoDownArrowCallout; break;
8039         case mso_sptLeftRightArrowCallout :     pCustomShape = &msoLeftRightArrowCallout; break;
8040         case mso_sptUpDownArrowCallout :        pCustomShape = &msoUpDownArrowCallout; break;
8041         case mso_sptQuadArrowCallout :          pCustomShape = &msoQuadArrowCallout; break;
8042         case mso_sptCircularArrow :             pCustomShape = &msoCircularArrow; break;
8043         case mso_sptIrregularSeal1 :            pCustomShape = &msoIrregularSeal1; break;
8044         case mso_sptIrregularSeal2 :            pCustomShape = &msoIrregularSeal2; break;
8045         case mso_sptSeal4 :                     pCustomShape = &msoSeal4; break;
8046         case mso_sptStar :                      pCustomShape = &msoStar; break;
8047         case mso_sptSeal8 :                     pCustomShape = &msoSeal8; break;
8048         case mso_sptSeal :
8049         case mso_sptSeal16 :                    pCustomShape = &msoSeal16; break;
8050         case mso_sptSeal24 :                    pCustomShape = &msoSeal24; break;
8051         case mso_sptSeal32 :                    pCustomShape = &msoSeal32; break;
8052         case mso_sptRibbon2 :                   pCustomShape = &msoRibbon2; break;
8053         case mso_sptRibbon :                    pCustomShape = &msoRibbon; break;
8054         case mso_sptEllipseRibbon2 :            pCustomShape = &msoRibbon2; break;  // SJ: TODO
8055         case mso_sptEllipseRibbon :             pCustomShape = &msoRibbon; break;   // SJ: TODO
8056         case mso_sptVerticalScroll :            pCustomShape = &msoVerticalScroll;  break;
8057         case mso_sptHorizontalScroll :          pCustomShape = &msoHorizontalScroll; break;
8058         case mso_sptFlowChartProcess :          pCustomShape = &msoFlowChartProcess; break;
8059         case mso_sptFlowChartAlternateProcess : pCustomShape = &msoFlowChartAlternateProcess; break;
8060         case mso_sptFlowChartDecision :         pCustomShape = &msoFlowChartDecision; break;
8061         case mso_sptFlowChartInputOutput :      pCustomShape = &msoFlowChartInputOutput; break;
8062         case mso_sptFlowChartPredefinedProcess :pCustomShape = &msoFlowChartPredefinedProcess; break;
8063         case mso_sptFlowChartInternalStorage :  pCustomShape = &msoFlowChartInternalStorage; break;
8064         case mso_sptFlowChartDocument :         pCustomShape = &msoFlowChartDocument; break;
8065         case mso_sptFlowChartMultidocument :    pCustomShape = &msoFlowChartMultidocument; break;
8066         case mso_sptFlowChartTerminator :       pCustomShape = &msoFlowChartTerminator; break;
8067         case mso_sptFlowChartPreparation :      pCustomShape = &msoFlowChartPreparation; break;
8068         case mso_sptFlowChartManualInput :      pCustomShape = &msoFlowChartManualInput; break;
8069         case mso_sptFlowChartManualOperation :  pCustomShape = &msoFlowChartManualOperation; break;
8070         case mso_sptFlowChartConnector :        pCustomShape = &msoFlowChartConnector; break;
8071         case mso_sptFlowChartOffpageConnector : pCustomShape = &msoFlowChartOffpageConnector; break;
8072         case mso_sptFlowChartPunchedCard :      pCustomShape = &msoFlowChartPunchedCard; break;
8073         case mso_sptFlowChartPunchedTape :      pCustomShape = &msoFlowChartPunchedTape; break;
8074         case mso_sptFlowChartSummingJunction :  pCustomShape = &msoFlowChartSummingJunction; break;
8075         case mso_sptFlowChartOr :               pCustomShape = &msoFlowChartOr; break;
8076         case mso_sptFlowChartCollate :          pCustomShape = &msoFlowChartCollate; break;
8077         case mso_sptFlowChartSort :             pCustomShape = &msoFlowChartSort; break;
8078         case mso_sptFlowChartExtract :          pCustomShape = &msoFlowChartExtract; break;
8079         case mso_sptFlowChartMerge :            pCustomShape = &msoFlowChartMerge; break;
8080         case mso_sptFlowChartOnlineStorage :    pCustomShape = &msoFlowChartOnlineStorage; break;
8081         case mso_sptFlowChartDelay :            pCustomShape = &msoFlowChartDelay; break;
8082         case mso_sptFlowChartMagneticTape :     pCustomShape = &msoFlowChartMagneticTape; break;
8083         case mso_sptFlowChartMagneticDisk :     pCustomShape = &msoFlowChartMagneticDisk; break;
8084         case mso_sptFlowChartMagneticDrum :     pCustomShape = &msoFlowChartMagneticDrum; break;
8085         case mso_sptFlowChartDisplay :          pCustomShape = &msoFlowChartDisplay; break;
8086         case mso_sptWedgeRectCallout :          pCustomShape = &msoWedgeRectCallout; break;
8087         case mso_sptWedgeRRectCallout :         pCustomShape = &msoWedgeRRectCallout; break;
8088         case mso_sptWedgeEllipseCallout :       pCustomShape = &msoWedgeEllipseCallout; break;
8089         case mso_sptCloudCallout :              pCustomShape = &msoCloudCallout; break;
8090         case mso_sptWave :                      pCustomShape = &msoWave; break;
8091         case mso_sptDoubleWave :                pCustomShape = &msoDoubleWave; break;
8092 
8093         // callout
8094         case mso_sptCallout1 :                  pCustomShape = &msoCallout1; break;
8095         case mso_sptCallout2 :                  pCustomShape = &msoCallout2; break;
8096         case mso_sptCallout3 :                  pCustomShape = &msoCallout3; break;
8097         case mso_sptAccentCallout1 :            pCustomShape = &msoAccentCallout1; break;
8098         case mso_sptAccentCallout2 :            pCustomShape = &msoAccentCallout2; break;
8099         case mso_sptAccentCallout3 :            pCustomShape = &msoAccentCallout3; break;
8100         case mso_sptBorderCallout1 :            pCustomShape = &msoBorderCallout1; break;
8101         case mso_sptBorderCallout2 :            pCustomShape = &msoBorderCallout2; break;
8102         case mso_sptBorderCallout3 :            pCustomShape = &msoBorderCallout3; break;
8103         case mso_sptAccentBorderCallout1 :      pCustomShape = &msoAccentBorderCallout1; break;
8104         case mso_sptAccentBorderCallout2 :      pCustomShape = &msoAccentBorderCallout2; break;
8105         case mso_sptAccentBorderCallout3 :      pCustomShape = &msoAccentBorderCallout3; break;
8106         case mso_sptCallout90 :                 pCustomShape = &msoCallout90; break;
8107         case mso_sptAccentCallout90 :           pCustomShape = &msoAccentCallout90; break;
8108         case mso_sptBorderCallout90 :           pCustomShape = &msoBorderCallout90; break;
8109         case mso_sptAccentBorderCallout90 :     pCustomShape = &msoAccentBorderCallout90; break;
8110 
8111         // connectors
8112         case mso_sptStraightConnector1 :        pCustomShape = &msoStraightConnector1; break;
8113         case mso_sptBentConnector2 :            pCustomShape = &msoBentConnector2; break;
8114         case mso_sptBentConnector3 :            pCustomShape = &msoBentConnector3; break;
8115         case mso_sptBentConnector4 :            pCustomShape = &msoBentConnector4; break;
8116         case mso_sptBentConnector5 :            pCustomShape = &msoBentConnector5; break;
8117         case mso_sptCurvedConnector2 :          pCustomShape = &msoCurvedConnector2; break;
8118         case mso_sptCurvedConnector3 :          pCustomShape = &msoCurvedConnector3; break;
8119         case mso_sptCurvedConnector4 :          pCustomShape = &msoCurvedConnector4; break;
8120         case mso_sptCurvedConnector5 :          pCustomShape = &msoCurvedConnector5; break;
8121 
8122         // Dont know, simply mapping to TextSimple
8123         case mso_sptTextOnRing :
8124         case mso_sptTextOnCurve :
8125         case mso_sptTextRing :
8126         case mso_sptTextWave :
8127         case mso_sptTextCurve :
8128         case mso_sptTextHexagon :
8129         case mso_sptTextOctagon :
8130         case mso_sptTextBox :                   pCustomShape = &msoTextSimple; break;
8131 
8132         // FontWork
8133         case mso_sptTextSimple :
8134         case mso_sptTextPlainText :             pCustomShape = &msoTextPlainText; break;
8135         case mso_sptTextStop :                  pCustomShape = &msoTextStop; break;
8136         case mso_sptTextTriangle :              pCustomShape = &msoTextTriangle; break;
8137         case mso_sptTextTriangleInverted :      pCustomShape = &msoTextTriangleInverted; break;
8138         case mso_sptTextChevron :               pCustomShape = &msoTextChevron; break;
8139         case mso_sptTextChevronInverted :       pCustomShape = &msoTextChevronInverted; break;
8140         case mso_sptTextRingInside :            pCustomShape = &msoTextRingOutside; break;  // SJ: TODO->the orientation of the ellipse needs to be changed
8141         case mso_sptTextRingOutside :           pCustomShape = &msoTextRingOutside; break;
8142         case mso_sptTextFadeRight :             pCustomShape = &msoTextFadeRight; break;
8143         case mso_sptTextFadeLeft :              pCustomShape = &msoTextFadeLeft; break;
8144         case mso_sptTextFadeUp :                pCustomShape = &msoTextFadeUp; break;
8145         case mso_sptTextFadeDown :              pCustomShape = &msoTextFadeDown; break;
8146         case mso_sptTextSlantUp :               pCustomShape = &msoTextSlantUp; break;
8147         case mso_sptTextSlantDown :             pCustomShape = &msoTextSlantDown; break;
8148         case mso_sptTextCascadeUp :             pCustomShape = &msoTextCascadeUp; break;
8149         case mso_sptTextCascadeDown :           pCustomShape = &msoTextCascadeDown; break;
8150         case mso_sptTextArchUpCurve :           pCustomShape = &msoTextArchUpCurve; break;
8151         case mso_sptTextArchDownCurve :         pCustomShape = &msoTextArchDownCurve; break;
8152         case mso_sptTextCircleCurve :           pCustomShape = &msoTextCircleCurve; break;
8153         case mso_sptTextButtonCurve :           pCustomShape = &msoTextButtonCurve; break;
8154         case mso_sptTextArchUpPour :            pCustomShape = &msoTextArchUpPour; break;
8155         case mso_sptTextArchDownPour :          pCustomShape = &msoTextArchDownPour; break;
8156         case mso_sptTextCirclePour :            pCustomShape = &msoTextCirclePour; break;
8157         case mso_sptTextButtonPour :            pCustomShape = &msoTextButtonPour; break;
8158         case mso_sptTextCurveUp :               pCustomShape = &msoTextCurveUp; break;
8159         case mso_sptTextCurveDown :             pCustomShape = &msoTextCurveDown; break;
8160         case mso_sptTextCanUp :                 pCustomShape = &msoTextCanUp; break;
8161         case mso_sptTextCanDown :               pCustomShape = &msoTextCanDown; break;
8162         case mso_sptTextInflate :               pCustomShape = &msoTextInflate; break;
8163         case mso_sptTextDeflate :               pCustomShape = &msoTextDeflate; break;
8164         case mso_sptTextInflateBottom :         pCustomShape = &msoTextInflateBottom; break;
8165         case mso_sptTextDeflateBottom :         pCustomShape = &msoTextDeflateBottom; break;
8166         case mso_sptTextInflateTop :            pCustomShape = &msoTextInflateTop; break;
8167         case mso_sptTextDeflateTop :            pCustomShape = &msoTextDeflateTop; break;
8168         case mso_sptTextDeflateInflate :        pCustomShape = &msoTextDeflateInflate; break;
8169         case mso_sptTextDeflateInflateDeflate : pCustomShape = &msoTextDeflateInflateDeflate; break;
8170         case mso_sptTextWave1 :                 pCustomShape = &msoTextWave1; break;
8171         case mso_sptTextWave2 :                 pCustomShape = &msoTextWave2; break;
8172         case mso_sptTextWave3 :                 pCustomShape = &msoTextWave3; break;
8173         case mso_sptTextWave4 :                 pCustomShape = &msoTextWave4; break;
8174         default :
8175         break;
8176     }
8177     return pCustomShape;
8178 }
8179