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