Compare commits

...

13 Commits

23 changed files with 2182 additions and 251 deletions

2
.gitignore vendored
View File

@ -47,6 +47,8 @@ ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2_p.c
ASCOfficeXlsFile2/win32/dlldata.c
OfficeUtils/win32/OfficeUtilsLib/OfficeUtilsLib/ReadMe.txt
X2tConverter/**/Makefile.*
X2tConverter/ASCOfficePPTXFile/PPTXLib/Linux/PPTXFormatLib/Makefile
X2tConverter/Common/DocxFormat/DocxFormatLib/Makefile
*.7z
*.obj
*.pdb

View File

@ -243,16 +243,16 @@ void oox_serialize_aLst(std::wostream & strm, const std::vector<odf_reader::_pro
{
names.push_back(L"adj1");
}
else if (std::wstring::npos != shapeGeomPreset.find(L"decagon"))
{
names.push_back(L"vf");
}
else if (std::wstring::npos != shapeGeomPreset.find(L"heptagon") ||
std::wstring::npos != shapeGeomPreset.find(L"pentagon"))
{
names.push_back(L"hf");
names.push_back(L"vf");
}
//else if (std::wstring::npos != shapeGeomPreset.find(L"decagon"))
//{
// names.push_back(L"vf");
//}
//else if (std::wstring::npos != shapeGeomPreset.find(L"heptagon") ||
// std::wstring::npos != shapeGeomPreset.find(L"pentagon"))
//{
// names.push_back(L"hf");
// names.push_back(L"vf");
//}
else if (std::wstring::npos != shapeGeomPreset.find(L"hexagon"))
{
names.push_back(L"adj");

View File

@ -1057,7 +1057,7 @@ void process_build_object::visit(table_table_cell& val)
if (cell_cash.empty())
cell_cash = cell_val;
object_odf_context::_cell cell_= {object_odf_context_.current_table_column_, object_odf_context_.current_table_row_, cell_cash};
object_odf_context::_cell cell_= {(size_t)object_odf_context_.current_table_column_, (size_t)object_odf_context_.current_table_row_, cell_cash};
object_odf_context_.cash_values.push_back(cell_);

View File

@ -79,8 +79,8 @@ static const _shape_converter _OO_OOX_custom_shapes[]=
{L"up-down-arrow-callout" ,L"upDownArrowCallout" ,0 ,0 ,0 },
{L"quad-arrow-callout" ,L"quadArrowCallout" ,0 ,0 ,0 },
{L"circular-arrow" ,L"circularArrow" ,0 ,0 ,0 },
{L"can" ,L"lightningBolt" ,0 ,0 ,0 },
{L"lightning" ,L"can" ,0 ,0 ,0 },
{L"can" ,L"can" ,0 ,0 ,0 },
{L"lightning" ,L"lightningBolt" ,0 ,0 ,0 },
{L"heart" ,L"heart" ,0 ,0 ,0 },
{L"sun" ,L"sun" ,1 ,46875 ,12500 },
{L"moon" ,L"moon" ,0 ,0 ,0 },
@ -222,7 +222,6 @@ static const _shape_converter _OO_OOX_custom_shapes[]=
{L"concave-star6" ,L"" ,0 ,0 ,0 },
{L"signet" ,L"" ,0 ,0 ,0 },
{L"doorplate" ,L"" ,0 ,0 ,0 },
{L"" ,L"round1Rect" ,0 ,0 ,0 },
{L"" ,L"round2DiagRect" ,0 ,0 ,0 },
{L"" ,L"snip2DiagRect" ,0 ,0 ,0 },

View File

@ -546,9 +546,9 @@ void draw_enhanced_geometry::find_draw_type_oox()
if (!draw_type_oox_index_)
{
int count = sizeof(_OO_OOX_custom_shapes) / sizeof(_shape_converter);
int pos = odf_type.find(L"ooxml-");
size_t pos = odf_type.find(L"ooxml-");
if (pos < 0)
if (pos == std::wstring::npos)
{
for (long i = 0; i< count; i++)
{
@ -562,7 +562,7 @@ void draw_enhanced_geometry::find_draw_type_oox()
else
{
std::wstring oox_type = odf_type.substr(pos + 6);
for (long i = 0; i< count; i++)
for (long i = 0; i < count; i++)
{
if (_OO_OOX_custom_shapes[i].oox == oox_type)
{
@ -572,7 +572,7 @@ void draw_enhanced_geometry::find_draw_type_oox()
}
}
}
if ((draw_type_oox_index_) && (*draw_type_oox_index_== 179))//L"textBox"
if ((draw_type_oox_index_) && (*draw_type_oox_index_== 96))//L"textBox" "mso-spt24"
{
sub_type_ = 1;//textBox
}

View File

@ -42,9 +42,9 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeAccentBorderCallout1 = 0,
{ L"" , 7}, // shapetypeAccentBorderCallout2,
{ L"" , 7}, // shapetypeAccentBorderCallout3,
{ L"mso-spt44" , 7}, // shapetypeAccentCallout1,
{ L"mso-spt45" , 7}, // shapetypeAccentCallout2,
{ L"mso-spt46" , 7}, // shapetypeAccentCallout3,
{ L"" , 7}, // shapetypeAccentCallout1,
{ L"" , 7}, // shapetypeAccentCallout2,
{ L"" , 7}, // shapetypeAccentCallout3,
{ L"actionButtonBackPrevious" , 7}, // shapetypeActionButtonBackPrevious, //mso-spt194
{ L"mso-spt196" , 7}, // shapetypeActionButtonBeginning,
{ L"mso-spt189" , 7}, // shapetypeActionButtonBlank,
@ -66,14 +66,14 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeBentUpArrow,
{ L"quad-bevel" , 7}, // shapetypeBevel,
{ L"" , 7}, // shapetypeBlockArc,
{ L"mso-spt49" , 7}, // shapetypeBorderCallout1,
{ L"mso-spt50" , 7}, // shapetypeBorderCallout2,
{ L"mso-spt51" , 7}, // shapetypeBorderCallout3,
{ L"" , 7}, // shapetypeBorderCallout1,
{ L"" , 7}, // shapetypeBorderCallout2,
{ L"" , 7}, // shapetypeBorderCallout3,
{ L"brace-pair" , 7}, // shapetypeBracePair,
{ L"" , 7}, // shapetypeBracketPair,
{ L"mso-spt41" , 7}, // shapetypeCallout1,
{ L"mso-spt42" , 7}, // shapetypeCallout2,
{ L"mso-spt43" , 7}, // shapetypeCallout3,
{ L"" , 7}, // shapetypeCallout1,
{ L"" , 7}, // shapetypeCallout2,
{ L"" , 7}, // shapetypeCallout3,
{ L"can" , 7}, // shapetypeCan,
{ L"" , 7}, // shapetypeChartPlus,
{ L"" , 7}, // shapetypeChartStar,
@ -82,10 +82,10 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeChord,
{ L"" , 7}, // shapetypeCircularArrow,
{ L"cloud" , 7}, // shapetypeCloud,
{ L"cloud-callout" , 7}, // shapetypeCloudCallout,
{ L"" , 7}, // shapetypeCloudCallout,
{ L"" , 7}, // shapetypeCorner,
{ L"" , 7}, // shapetypeCornerTabs,
{ L"cube" , 7}, // shapetypeCube,
{ L"" , 7}, // shapetypeCube,
{ L"mso-spt37" , 7}, // shapetypeCurvedConnector2,
{ L"mso-spt38" , 7}, // shapetypeCurvedConnector3,
{ L"mso-spt39" , 7}, // shapetypeCurvedConnector4,
@ -103,8 +103,8 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeDownArrow,
{ L"" , 7}, // shapetypeDownArrowCallout,
{ L"ellipse" , 3}, // shapetypeEllipse,
{ L"mso-spt107" , 7}, // shapetypeEllipseRibbon,
{ L"mso-spt108" , 7}, // shapetypeEllipseRibbon2,
{ L"" , 7}, // shapetypeEllipseRibbon,
{ L"" , 7}, // shapetypeEllipseRibbon2,
{ L"flowchart-alternate-process" , 7}, // shapetypeFlowChartAlternateProcess,
{ L"flowchart-collate" , 7}, // shapetypeFlowChartCollate,
{ L"flowchart-connector" , 7}, // shapetypeFlowChartConnector,
@ -142,7 +142,7 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeHalfFrame,
{ L"heart" , 7}, // shapetypeHeart,
{ L"" , 7}, // shapetypeHeptagon,
{ L"hexagon" , 7}, // shapetypeHexagon,
{ L"" , 7}, // shapetypeHexagon,
{ L"" , 7}, // shapetypeHomePlate,
{ L"horizontal-scroll" , 7}, // shapetypeHorizontalScroll,
{ L"" , 7}, // shapetypeIrregularSeal1,
@ -171,9 +171,9 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"" , 7}, // shapetypeNonIsoscelesTrapezoid,
{ L"forbidden" , 7}, // shapetypeNoSmoking,
{ L"" , 7}, // shapetypeNotchedRightArrow,
{ L"octagon" , 7}, // shapetypeOctagon,
{ L"" , 7}, // shapetypeOctagon,
{ L"" , 7}, // shapetypeParallelogram,
{ L"pentagon" , 7}, // shapetypePentagon,
{ L"" , 7}, // shapetypePentagon,
{ L"" , 7}, // shapetypePie,
{ L"" , 7}, // shapetypePieWedge,
{ L"" , 7}, // shapetypePlaque,
@ -182,8 +182,8 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"quad-arrow" , 7}, // shapetypeQuadArrow,
{ L"quad-arrow-callout" , 7}, // shapetypeQuadArrowCallout,
{ L"rectangle" , 2}, // shapetypeRect,
{ L"mso-spt53" , 7}, // shapetypeRibbon,
{ L"mso-spt54" , 7}, // shapetypeRibbon2,
{ L"" , 7}, // shapetypeRibbon,
{ L"" , 7}, // shapetypeRibbon2,
{ L"" , 7}, // shapetypeRightArrow,
{ L"" , 7}, // shapetypeRightArrowCallout,
{ L"right-brace" , 7}, // shapetypeRightBrace,
@ -223,9 +223,9 @@ static const _sh_typ Shape_Types_Mapping[] = // index === OOX::Drawing::EShapeTy
{ L"mso-spt101" , 7}, // shapetypeUturnArrow,
{ L"vertical-scroll" , 7}, // shapetypeVerticalScroll,
{ L"" , 7}, // shapetypeWave,
{ L"round-callout" , 7}, // shapetypeWedgeEllipseCallout,
{ L"rectangular-callout" , 7}, // shapetypeWedgeRectCallout,
{ L"round-rectangular-callout" , 7}, // shapetypeWedgeRoundRectCallout,
{ L"" , 7}, // shapetypeWedgeEllipseCallout,
{ L"" , 7}, // shapetypeWedgeRectCallout,
{ L"" , 7}, // shapetypeWedgeRoundRectCallout,
{ L"mso-spt17" , 7}, // shapetypeBallon,
{ L"up-right-arrow" , 7}, // shapetypeRightUpArrow,
{ L"fontwork-arch-down-pour" , 7}, // shapetypeTextArchDownPour,

View File

@ -31,11 +31,336 @@
*/
#include "../oox_shape_defines.h"
// shapetypeAccentBorderCallout1,
// shapetypeAccentBorderCallout2,
// shapetypeAccentBorderCallout3,
//+ shapetypeAccentBorderCallout1,
//+ shapetypeAccentBorderCallout2,
//+ shapetypeAccentBorderCallout3,
//+ shapetypeAccentCallout1
//+ shapetypeAccentCallout2
//+ shapetypeAccentCallout3
//+ shapetypeBorderCallout1
//+ shapetypeBorderCallout2
//+ shapetypeBorderCallout3
namespace cpdoccore
{
class oox_shape_AccentCallout1 : public oox_shape
{
public:
oox_shape_AccentCallout1()
{
odf_type_name =L"ooxml-accentCallout1";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentCallout2 : public oox_shape
{
public:
oox_shape_AccentCallout2()
{
odf_type_name =L"ooxml-accentCallout2";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentCallout3 : public oox_shape
{
public:
oox_shape_AccentCallout3()
{
odf_type_name =L"ooxml-accentCallout3";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 ?f15 ?f14 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 100000 -16667 112963 -8333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f17 / 100000");
add(L"f9", L"?f5 * ?f16 / 100000");
add(L"f10", L"?f4 * ?f19 / 100000");
add(L"f11", L"?f5 * ?f18 / 100000");
add(L"f12", L"?f4 * ?f21 / 100000");
add(L"f13", L"?f5 * ?f20 / 100000");
add(L"f14", L"?f4 * ?f23 / 100000");
add(L"f15", L"?f5 * ?f22 / 100000");
add(L"f16", L"$1 / ?f7");
add(L"f17", L"$0 / ?f7");
add(L"f18", L"$3 / ?f7");
add(L"f19", L"$2 / ?f7");
add(L"f20", L"$5 / ?f7");
add(L"f21", L"$4 / ?f7");
add(L"f22", L"$7 / ?f7");
add(L"f23", L"$6 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_BorderCallout1 : public oox_shape
{
public:
oox_shape_BorderCallout1()
{
odf_type_name =L"ooxml-borderCallout1";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_BorderCallout2 : public oox_shape
{
public:
oox_shape_BorderCallout2()
{
odf_type_name =L"ooxml-borderCallout2";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_BorderCallout3 : public oox_shape
{
public:
oox_shape_BorderCallout3()
{
odf_type_name =L"ooxml-borderCallout3";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 ?f15 ?f14 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 100000 -16667 112963 -8333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f17 / 100000");
add(L"f9", L"?f5 * ?f16 / 100000");
add(L"f10", L"?f4 * ?f19 / 100000");
add(L"f11", L"?f5 * ?f18 / 100000");
add(L"f12", L"?f4 * ?f21 / 100000");
add(L"f13", L"?f5 * ?f20 / 100000");
add(L"f14", L"?f4 * ?f23 / 100000");
add(L"f15", L"?f5 * ?f22 / 100000");
add(L"f16", L"$1 / ?f7");
add(L"f17", L"$0 / ?f7");
add(L"f18", L"$3 / ?f7");
add(L"f19", L"$2 / ?f7");
add(L"f20", L"$5 / ?f7");
add(L"f21", L"$4 / ?f7");
add(L"f22", L"$7 / ?f7");
add(L"f23", L"$6 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentBorderCallout1 : public oox_shape
{
public:
oox_shape_AccentBorderCallout1()
{
odf_type_name =L"ooxml-accentBorderCallout1";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentBorderCallout2 : public oox_shape
{
public:
oox_shape_AccentBorderCallout2()
{
odf_type_name =L"ooxml-accentBorderCallout2";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_AccentBorderCallout3 : public oox_shape
{
public:
oox_shape_AccentBorderCallout3()
{
odf_type_name =L"ooxml-accentBorderCallout3";
enhanced_path = L"M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f2 L ?f9 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 ?f15 ?f14 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 100000 -16667 112963 -8333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f17 / 100000");
add(L"f9", L"?f5 * ?f16 / 100000");
add(L"f10", L"?f4 * ?f19 / 100000");
add(L"f11", L"?f5 * ?f18 / 100000");
add(L"f12", L"?f4 * ?f21 / 100000");
add(L"f13", L"?f5 * ?f20 / 100000");
add(L"f14", L"?f4 * ?f23 / 100000");
add(L"f15", L"?f5 * ?f22 / 100000");
add(L"f16", L"$1 / ?f7");
add(L"f17", L"$0 / ?f7");
add(L"f18", L"$3 / ?f7");
add(L"f19", L"$2 / ?f7");
add(L"f20", L"$5 / ?f7");
add(L"f21", L"$4 / ?f7");
add(L"f22", L"$7 / ?f7");
add(L"f23", L"$6 / ?f7");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -35,6 +35,13 @@
//+ shapetypeRightArrowCallout
//+ shapetypeUpArrowCallout
//+ shapetypeDownArrowCallout
//+ shapetypeCallout1
//+ shapetypeCallout2
//- shapetypeCallout3
//+ shapetypeWedgeRectCallout
//+ shapetypeWedgeRoundRectCallout
//+ shapetypeCloudCallout
//+ shapetypeWedgeEllipseCallout
namespace cpdoccore
{
@ -277,5 +284,280 @@ public:
handles.push_back(h2);
}
};
class oox_shape_Callout1 : public oox_shape
{
public:
oox_shape_Callout1()
{
odf_type_name =L"ooxml-callout1";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 112500 -38333";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f13 / 100000");
add(L"f9", L"?f5 * ?f12 / 100000");
add(L"f10", L"?f4 * ?f15 / 100000");
add(L"f11", L"?f5 * ?f14 / 100000");
add(L"f12", L"$1 / ?f7");
add(L"f13", L"$0 / ?f7");
add(L"f14", L"$3 / ?f7");
add(L"f15", L"$2 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Callout2 : public oox_shape
{
public:
oox_shape_Callout2()
{
odf_type_name =L"ooxml-callout2";
enhanced_path = L"S M ?f0 ?f2 L ?f1 ?f2 ?f1 ?f3 ?f0 ?f3 Z N F M ?f9 ?f8 L ?f11 ?f10 ?f13 ?f12 N";
text_areas = L"?f0 ?f2 ?f1 ?f3";
view_box = L"0 0 21600 21600";
modifiers = L"18750 -8333 18750 -16667 112500 -46667";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"?f6 / 21600");
add(L"f8", L"?f4 * ?f15 / 100000");
add(L"f9", L"?f5 * ?f14 / 100000");
add(L"f10", L"?f4 * ?f17 / 100000");
add(L"f11", L"?f5 * ?f16 / 100000");
add(L"f12", L"?f4 * ?f19 / 100000");
add(L"f13", L"?f5 * ?f18 / 100000");
add(L"f14", L"$1 / ?f7");
add(L"f15", L"$0 / ?f7");
add(L"f16", L"$3 / ?f7");
add(L"f17", L"$2 / ?f7");
add(L"f18", L"$5 / ?f7");
add(L"f19", L"$4 / ?f7");
/////////////////////////////////////////////////////////
}
};
class oox_shape_CloudCallout : public oox_shape
{
public:
oox_shape_CloudCallout()
{
odf_type_name =L"ooxml-cloudCallout";
enhanced_path = L"M 1930 7160 C 1530 4490 3400 1970 5270 1970 5860 1950 6470 2210 6970 2600 7450 1390 8340 650 9340 650 10004 690 10710 1050 11210 1700 11570 630 12330 0 13150 0 13840 0 14470 460 14870 1160 15330 440 16020 0 16740 0 17910 0 18900 1130 19110 2710 20240 3150 21060 4580 21060 6220 21060 6720 21000 7200 20830 7660 21310 8460 21600 9450 21600 10460 21600 12750 20310 14680 18650 15010 18650 17200 17370 18920 15770 18920 15220 18920 14700 18710 14240 18310 13820 20240 12490 21600 11000 21600 9890 21600 8840 20790 8210 19510 7620 20000 7930 20290 6240 20290 4850 20290 3570 19280 2900 17640 1300 17600 480 16300 480 14660 480 13900 690 13210 1070 12640 380 12160 0 11210 0 10120 0 8590 840 7330 1930 7160 Z N M 1930 7160 C 1950 7410 2040 7690 2090 7920 F N M 6970 2600 C 7200 2790 7480 3050 7670 3310 F N M 11210 1700 C 11130 1910 11080 2160 11030 2400 F N M 14870 1160 C 14720 1400 14640 1720 14540 2010 F N M 19110 2710 C 19130 2890 19230 3290 19190 3380 F N M 20830 7660 C 20660 8170 20430 8620 20110 8990 F N M 18660 15010 C 18740 14200 18280 12200 17000 11450 F N M 14240 18310 C 14320 17980 14350 17680 14370 17360 F N M 8220 19510 C 8060 19250 7960 18950 7860 18640 F N M 2900 17640 C 3090 17600 3280 17540 3460 17450 F N M 1070 12640 C 1400 12900 1780 13130 2330 13040 F N U ?f17 ?f18 1800 1800 0 23592960 Z N U ?f19 ?f20 1200 1200 0 23592960 Z N U ?f13 ?f14 700 700 0 23592960 Z N";
text_areas = L"3000 3320 17110 17330";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"0 10800 10800 21600 21600 10800 10800 0 ?f13 ?f14";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"atan2(?f1 ,?f0 )/(pi/180)");
add(L"f3", L"10800*cos(?f2 *(pi/180))");
add(L"f4", L"10800*sin(?f2 *(pi/180))");
add(L"f5", L"?f3 +10800");
add(L"f6", L"?f4 +10800");
add(L"f7", L"$0 -?f5 ");
add(L"f8", L"$1 -?f6 ");
add(L"f9", L"?f7 /3");
add(L"f10", L"?f8 /3");
add(L"f11", L"?f7 *2/3");
add(L"f12", L"?f8 *2/3");
add(L"f13", L"$0 ");
add(L"f14", L"$1 ");
add(L"f15", L"?f3 /12");
add(L"f16", L"?f4 /12");
add(L"f17", L"?f9 +?f5 -?f15 ");
add(L"f18", L"?f10 +?f6 -?f16 ");
add(L"f19", L"?f11 +?f5 ");
add(L"f20", L"?f12 +?f6 ");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
class oox_shape_WedgeRectCallout : public oox_shape
{
public:
oox_shape_WedgeRectCallout()
{
odf_type_name =L"ooxml-wedgeRectCallout";
enhanced_path = L"M 0 0 L 0 3590 ?f2 ?f3 0 8970 0 12630 ?f4 ?f5 0 18010 0 21600 3590 21600 ?f6 ?f7 8970 21600 12630 21600 ?f8 ?f9 18010 21600 21600 21600 21600 18010 ?f10 ?f11 21600 12630 21600 8970 ?f12 ?f13 21600 3590 21600 0 18010 0 ?f14 ?f15 12630 0 8970 0 ?f16 ?f17 3590 0 0 0 Z N";
text_areas = L"0 0 21600 21600";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"?f40 ?f41";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"if(?f18 ,$0 ,0)");
add(L"f3", L"if(?f18 ,$1 ,6280)");
add(L"f4", L"if(?f23 ,$0 ,0)");
add(L"f5", L"if(?f23 ,$1 ,15320)");
add(L"f6", L"if(?f26 ,$0 ,6280)");
add(L"f7", L"if(?f26 ,$1 ,21600)");
add(L"f8", L"if(?f29 ,$0 ,15320)");
add(L"f9", L"if(?f29 ,$1 ,21600)");
add(L"f10", L"if(?f32 ,$0 ,21600)");
add(L"f11", L"if(?f32 ,$1 ,15320)");
add(L"f12", L"if(?f34 ,$0 ,21600)");
add(L"f13", L"if(?f34 ,$1 ,6280)");
add(L"f14", L"if(?f36 ,$0 ,15320)");
add(L"f15", L"if(?f36 ,$1 ,0)");
add(L"f16", L"if(?f38 ,$0 ,6280)");
add(L"f17", L"if(?f38 ,$1 ,0)");
add(L"f18", L"if($0 ,-1,?f19 )");
add(L"f19", L"if(?f1 ,-1,?f22 )");
add(L"f20", L"abs(?f0 )");
add(L"f21", L"abs(?f1 )");
add(L"f22", L"?f20 -?f21 ");
add(L"f23", L"if($0 ,-1,?f24 )");
add(L"f24", L"if(?f1 ,?f22 ,-1)");
add(L"f25", L"$1 -21600");
add(L"f26", L"if(?f25 ,?f27 ,-1)");
add(L"f27", L"if(?f0 ,-1,?f28 )");
add(L"f28", L"?f21 -?f20 ");
add(L"f29", L"if(?f25 ,?f30 ,-1)");
add(L"f30", L"if(?f0 ,?f28 ,-1)");
add(L"f31", L"$0 -21600");
add(L"f32", L"if(?f31 ,?f33 ,-1)");
add(L"f33", L"if(?f1 ,?f22 ,-1)");
add(L"f34", L"if(?f31 ,?f35 ,-1)");
add(L"f35", L"if(?f1 ,-1,?f22 )");
add(L"f36", L"if($1 ,-1,?f37 )");
add(L"f37", L"if(?f0 ,?f28 ,-1)");
add(L"f38", L"if($1 ,-1,?f39 )");
add(L"f39", L"if(?f0 ,-1,?f28 )");
add(L"f40", L"$0 ");
add(L"f41", L"$1 ");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
class oox_shape_WedgeRoundRectCallout : public oox_shape
{
public:
oox_shape_WedgeRoundRectCallout()
{
odf_type_name =L"ooxml-wedgeRoundRectCallout";
enhanced_path = L"M 3590 0 X 0 3590 L ?f2 ?f3 0 8970 0 12630 ?f4 ?f5 0 18010 Y 3590 21600 L ?f6 ?f7 8970 21600 12630 21600 ?f8 ?f9 18010 21600 X 21600 18010 L ?f10 ?f11 21600 12630 21600 8970 ?f12 ?f13 21600 3590 Y 18010 0 L ?f14 ?f15 12630 0 8970 0 ?f16 ?f17 Z N";
text_areas = L"800 800 20800 20800";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"?f40 ?f41";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"if(?f18 ,$0 ,0)");
add(L"f3", L"if(?f18 ,$1 ,6280)");
add(L"f4", L"if(?f23 ,$0 ,0)");
add(L"f5", L"if(?f23 ,$1 ,15320)");
add(L"f6", L"if(?f26 ,$0 ,6280)");
add(L"f7", L"if(?f26 ,$1 ,21600)");
add(L"f8", L"if(?f29 ,$0 ,15320)");
add(L"f9", L"if(?f29 ,$1 ,21600)");
add(L"f10", L"if(?f32 ,$0 ,21600)");
add(L"f11", L"if(?f32 ,$1 ,15320)");
add(L"f12", L"if(?f34 ,$0 ,21600)");
add(L"f13", L"if(?f34 ,$1 ,6280)");
add(L"f14", L"if(?f36 ,$0 ,15320)");
add(L"f15", L"if(?f36 ,$1 ,0)");
add(L"f16", L"if(?f38 ,$0 ,6280)");
add(L"f17", L"if(?f38 ,$1 ,0)");
add(L"f18", L"if($0 ,-1,?f19 )");
add(L"f19", L"if(?f1 ,-1,?f22 )");
add(L"f20", L"abs(?f0 )");
add(L"f21", L"abs(?f1 )");
add(L"f22", L"?f20 -?f21 ");
add(L"f23", L"if($0 ,-1,?f24 )");
add(L"f24", L"if(?f1 ,?f22 ,-1)");
add(L"f25", L"$1 -21600");
add(L"f26", L"if(?f25 ,?f27 ,-1)");
add(L"f27", L"if(?f0 ,-1,?f28 )");
add(L"f28", L"?f21 -?f20 ");
add(L"f29", L"if(?f25 ,?f30 ,-1)");
add(L"f30", L"if(?f0 ,?f28 ,-1)");
add(L"f31", L"$0 -21600");
add(L"f32", L"if(?f31 ,?f33 ,-1)");
add(L"f33", L"if(?f1 ,?f22 ,-1)");
add(L"f34", L"if(?f31 ,?f35 ,-1)");
add(L"f35", L"if(?f1 ,-1,?f22 )");
add(L"f36", L"if($1 ,-1,?f37 )");
add(L"f37", L"if(?f0 ,?f28 ,-1)");
add(L"f38", L"if($1 ,-1,?f39 )");
add(L"f39", L"if(?f0 ,-1,?f28 )");
add(L"f40", L"$0 ");
add(L"f41", L"$1 ");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
class oox_shape_WedgeEllipseCallout : public oox_shape
{
public:
oox_shape_WedgeEllipseCallout()
{
odf_type_name =L"ooxml-wedgeEllipseCallout";
enhanced_path = L"W 0 0 21600 21600 ?f22 ?f23 ?f18 ?f19 L ?f14 ?f15 Z N";
text_areas = L"3200 3200 18400 18400";
view_box = L"0 0 21600 21600";
modifiers = L"6300 24300";
glue_points = L"3160 3160 3160 18440 18440 18440 18440 3160 ?f14 ?f15";
add(L"f0", L"$0 -10800");
add(L"f1", L"$1 -10800");
add(L"f2", L"?f0 *?f0 ");
add(L"f3", L"?f1 *?f1 ");
add(L"f4", L"?f2 +?f3 ");
add(L"f5", L"sqrt(?f4 )");
add(L"f6", L"?f5 -10800");
add(L"f7", L"atan2(?f1 ,?f0 )/(pi/180)");
add(L"f8", L"?f7 -10");
add(L"f9", L"?f7 +10");
add(L"f10", L"10800*cos(?f7 *(pi/180))");
add(L"f11", L"10800*sin(?f7 *(pi/180))");
add(L"f12", L"?f10 +10800");
add(L"f13", L"?f11 +10800");
add(L"f14", L"if(?f6 ,$0 ,?f12 )");
add(L"f15", L"if(?f6 ,$1 ,?f13 )");
add(L"f16", L"10800*cos(?f8 *(pi/180))");
add(L"f17", L"10800*sin(?f8 *(pi/180))");
add(L"f18", L"?f16 +10800");
add(L"f19", L"?f17 +10800");
add(L"f20", L"10800*cos(?f9 *(pi/180))");
add(L"f21", L"10800*sin(?f9 *(pi/180))");
add(L"f22", L"?f20 +10800");
add(L"f23", L"?f21 +10800");
/////////////////////////////////////////////////////////
_handle h1;
h1.position = L"$0 $1";
handles.push_back(h1);
}
};
}

View File

@ -35,19 +35,23 @@
//+ shapetypeChord,
//+ shapetypeCorner,
// shapetypeCornerTabs,
// shapetypeDecagon,
//+ shapetypeCube,
//+ shapetypeDecagon,
// shapetypeDiagStripe,
//+ shapetypeDiamond
// shapetypeDodecagon,
//+ shapetypeDodecagon,
//+ shapetypeDoubleWave,
//+ shapetypeFunnel,
//+ shapetypeGear6,
//+ shapetypeGear9,
// shapetypeHalfFrame,
// shapetypeHeptagon,
//+ shapetypeHeptagon,
//+ shapetypeHexagon,
//+ shapetypeHomePlate,
// shapetypeNonIsoscelesTrapezoid,
//+ shapetypeOctagon,
//+ shapetypeParallelogram
//+ shapetypePentagon,
//+ shapetypePie,
//+ shapetypePieWedge,
//+ shapetypePlaque,
@ -282,55 +286,52 @@ public:
odf_type_name =L"ooxml-wave";
modifiers = L"12500 0";
enhanced_path = L"M ?f13 ?f2 C ?f17 ?f4 ?f18 ?f5 ?f15 ?f2 L ?f20 ?f6 C ?f22 ?f8 ?f21 ?f7 ?f19 ?f6 Z N";
text_areas = L"?f27 ?f29 ?f28 ?f30";
glue_points = L"?f35 ?f10 ?f19 ?f6 ?f28 ?f14 ?f38 ?f6";
view_box = L"0 0 0 0";
enhanced_path = L"M ?f23 ?f12 C ?f27 ?f14 ?f28 ?f15 ?f25 ?f12 L ?f30 ?f16 C ?f32 ?f18 ?f31 ?f17 ?f29 ?f16 Z N";
text_areas = L"?f36 ?f38 ?f37 ?f39";
glue_points = L"?f35 ?f12 ?f21 ?f6 ?f34 ?f16 ?f33 ?f6";
view_box = L"0 0 21600 21600";
add(L"f0", L"if(0-$0 ,0,if(20000-$0 ,$0 ,20000))");
add(L"f1", L"if(-10000-$1 ,-10000,if(10000-$1 ,$1 ,10000))");
add(L"f2", L"logheight*?f0 /100000");
add(L"f3", L"?f2 *10/3");
add(L"f4", L"?f2 +0-?f3 ");
add(L"f5", L"?f2 +?f3 -0");
add(L"f6", L"logheight+0-?f2 ");
add(L"f7", L"?f6 +0-?f3 ");
add(L"f8", L"?f6 +?f3 -0");
add(L"f9", L"logwidth*?f1 /100000");
add(L"f10", L"logwidth*?f1 /50000");
add(L"f11", L"abs(?f9 )");
add(L"f12", L"if(?f10 ,0,?f10 )");
add(L"f13", L"0+0-?f12 ");
add(L"f14", L"if(?f10 ,?f10 ,0)");
add(L"f15", L"logwidth+0-?f14 ");
add(L"f16", L"(?f12 +?f15 )/3");
add(L"f17", L"?f13 +?f16 -0");
add(L"f18", L"(?f17 +?f15 )/2");
add(L"f19", L"0+?f14 -0");
add(L"f20", L"logwidth+?f12 -0");
add(L"f21", L"?f19 +?f16 -0");
add(L"f22", L"(?f21 +?f20 )/2");
add(L"f23", L"logwidth+0-?f11");
add(L"f24", L"logwidth/2");
add(L"f25", L"?f24 +?f9 -0");
add(L"f26", L"?f24 +0-?f9 ");
add(L"f27", L"max(?f13 ,?f19 )");
add(L"f28", L"min(?f15 ,?f20 )");
add(L"f29", L"logheight*?f0 /50000");
add(L"f30", L"logheight+0-?f29 ");
add(L"f31", L"logheight");
add(L"f32", L"logheight/2");
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f4 / 2");
add(L"f6", L"?f2 + ?f5");
add(L"f7", L"?f1 - ?f0");
add(L"f8", L"?f7 / 2");
add(L"f9", L"?f0 + ?f8");
add(L"f10", L"$0");
add(L"f11", L"$1");
add(L"f12", L"?f4 * ?f10 / 100000");
add(L"f13", L"?f12 * 10 / 3");
add(L"f14", L"?f12 - ?f13");
add(L"f15", L"?f12 + ?f13");
add(L"f16", L"?f3 - ?f12");
add(L"f17", L"?f16 - ?f13");
add(L"f18", L"?f16 + ?f13");
add(L"f19", L"?f7 * ?f11 / 100000");
add(L"f20", L"?f7 * ?f11 / 50000");
add(L"f21", L"abs(?f19)");
add(L"f22", L"if(?f20, 0, ?f20)");
add(L"f23", L"?f0 - ?f22");
add(L"f24", L"if(?f20, ?f20, 0)");
add(L"f25", L"?f1 - ?f24");
add(L"f26", L"(?f22 + ?f25) / 3");
add(L"f27", L"?f23 + ?f26");
add(L"f28", L"(?f27 + ?f25) / 2");
add(L"f29", L"?f0 + ?f24");
add(L"f30", L"?f1 + ?f22");
add(L"f31", L"?f29 + ?f26");
add(L"f32", L"(?f31 + ?f30) / 2");
add(L"f33", L"?f1 - ?f21");
add(L"f34", L"?f9 + ?f19");
add(L"f35", L"?f9 - ?f19");
add(L"f36", L"max(?f23, ?f29)");
add(L"f37", L"min(?f25, ?f30)");
add(L"f38", L"?f4 * ?f10 / 50000");
add(L"f39", L"?f3 - ?f38");
/////////////////////////////////////////////////////////
_handle h1, h2;
h1.position = L"0 ?f2";
h1.y_maximum= L"20000";
h1.y_minimum= L"0";
handles.push_back(h1);
h2.position = L"?f25 ?f31";
h2.x_maximum= L"10000";
h2.x_minimum= L"-10000";
handles.push_back(h2);
}
};
class oox_shape_DoubleWave : public oox_shape
@ -338,7 +339,7 @@ class oox_shape_DoubleWave : public oox_shape
public:
oox_shape_DoubleWave()
{
odf_type_name =L"ooxml-DoubleWave";
odf_type_name =L"ooxml-doubleWave";
modifiers = L"6500 0";
enhanced_path = L"M ?f21 ?f10 C ?f25 ?f12 ?f27 ?f13 ?f28 ?f10 ?f29 ?f12 ?f30 ?f13 ?f23 ?f10 L ?f32 ?f14 C ?f37 ?f16 ?f36 ?f15 ?f35 ?f14 ?f34 ?f16 ?f33 ?f15 ?f31 ?f14 Z N";
@ -1623,4 +1624,311 @@ public:
}
};
class oox_shape_Pentagon : public oox_shape
{
public:
oox_shape_Pentagon()
{
odf_type_name =L"ooxml-pentagon";
enhanced_path = L"M ?f34 ?f38 L ?f11 ?f4 ?f37 ?f38 ?f36 ?f39 ?f35 ?f39 Z N";
text_areas = L"?f35 ?f40 ?f36 ?f39";
view_box = L"0 0 21600 21600";
glue_points = L"?f34 ?f38 ?f35 ?f39 ?f36 ?f39 ?f37 ?f38";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f6 / 2");
add(L"f8", L"?f4 + ?f7");
add(L"f9", L"?f3 - ?f2");
add(L"f10", L"?f9 / 2");
add(L"f11", L"?f2 + ?f10");
add(L"f12", L"5419351 / 1725033");
add(L"f13", L"?f10 * ?f41 / 100000");
add(L"f14", L"?f7 * ?f42 / 100000");
add(L"f15", L"?f8 * ?f42 / 100000");
add(L"f16", L"1080000 + ?f1");
add(L"f17", L"?f16 * ?f12 / ?f0");
add(L"f18", L"0 - ?f17");
add(L"f19", L"sin(?f18)");
add(L"f20", L"0 - ?f19");
add(L"f21", L"?f20 * ?f13");
add(L"f22", L"18360000 + ?f1");
add(L"f23", L"?f22 * ?f12 / ?f0");
add(L"f24", L"0 - ?f23");
add(L"f25", L"sin(?f24)");
add(L"f26", L"0 - ?f25");
add(L"f27", L"?f26 * ?f13");
add(L"f28", L"cos(?f18)");
add(L"f29", L"0 - ?f28");
add(L"f30", L"?f29 * ?f14");
add(L"f31", L"cos(?f24)");
add(L"f32", L"0 - ?f31");
add(L"f33", L"?f32 * ?f14");
add(L"f34", L"?f11 - ?f21");
add(L"f35", L"?f11 - ?f27");
add(L"f36", L"?f11 + ?f27");
add(L"f37", L"?f11 + ?f21");
add(L"f38", L"?f15 - ?f30");
add(L"f39", L"?f15 - ?f33");
add(L"f40", L"?f38 * ?f27 / ?f21");
add(L"f41", L"105146");
add(L"f42", L"110557");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Octagon : public oox_shape
{
public:
oox_shape_Octagon()
{
odf_type_name =L"ooxml-octagon";
modifiers = L"29289";
enhanced_path = L"M ?f0 ?f8 L ?f8 ?f2 ?f9 ?f2 ?f1 ?f8 ?f1 ?f10 ?f9 ?f3 ?f8 ?f3 ?f0 ?f10 Z N";
text_areas = L"?f11 ?f11 ?f12 ?f13";
view_box = L"0 0 21600 21600";
glue_points = L"?f1 ?f8 ?f1 ?f10 ?f9 ?f3 ?f8 ?f3 ?f0 ?f10 ?f0 ?f8 ?f8 ?f2 ?f9 ?f2";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"$0");
add(L"f8", L"?f6 * ?f7 / 100000");
add(L"f9", L"?f1 - ?f8");
add(L"f10", L"?f3 - ?f8");
add(L"f11", L"?f8 / 2");
add(L"f12", L"?f1 - ?f11");
add(L"f13", L"?f3 - ?f11");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Hexagon : public oox_shape
{
public:
oox_shape_Hexagon()
{
odf_type_name =L"ooxml-hexagon";
modifiers = L"28921 115470";
enhanced_path = L"M ?f2 ?f8 L ?f15 ?f23 ?f16 ?f23 ?f3 ?f8 ?f16 ?f24 ?f15 ?f24 Z N";
text_areas = L"?f33 ?f34 ?f35 ?f36";
view_box = L"0 0 21600 21600";
glue_points = L"?f16 ?f24 ?f15 ?f24 ?f15 ?f23 ?f16 ?f23";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f6 / 2");
add(L"f8", L"?f4 + ?f7");
add(L"f9", L"?f3 - ?f2");
add(L"f10", L"min(?f9, ?f6)");
add(L"f11", L"5419351 / 1725033");
add(L"f12", L"50000 * ?f9 / ?f10");
add(L"f13", L"$0");
add(L"f14", L"?f7 * ?f37 / 100000");
add(L"f15", L"?f10 * ?f13 / 100000");
add(L"f16", L"?f3 - ?f15");
add(L"f17", L"3600000 + ?f1");
add(L"f18", L"?f17 * ?f11 / ?f0");
add(L"f19", L"0 - ?f18");
add(L"f20", L"cos(?f19)");
add(L"f21", L"0 - ?f20");
add(L"f22", L"?f21 * ?f14");
add(L"f23", L"?f8 - ?f22");
add(L"f24", L"?f8 + ?f22");
add(L"f25", L"?f12 * -1 / 2");
add(L"f26", L"?f13 + ?f25");
add(L"f27", L"if(?f26, 4, 2)");
add(L"f28", L"if(?f26, 3, 2)");
add(L"f29", L"if(?f26, ?f25, 0)");
add(L"f30", L"(?f13 + ?f29) / ?f25");
add(L"f31", L"?f30 * ?f28 / -1");
add(L"f32", L"?f27 + ?f31");
add(L"f33", L"?f9 * ?f32 / 24");
add(L"f34", L"?f6 * ?f32 / 24");
add(L"f35", L"?f3 - ?f33");
add(L"f36", L"?f5 - ?f34");
add(L"f37", L"115470");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Heptagon : public oox_shape
{
public:
oox_shape_Heptagon()
{
odf_type_name =L"ooxml-heptagon";
enhanced_path = L"M ?f19 ?f26 L ?f20 ?f25 ?f9 ?f2 ?f23 ?f25 ?f24 ?f26 ?f22 ?f27 ?f21 ?f27 Z N";
text_areas = L"?f20 ?f25 ?f23 ?f28";
view_box = L"0 0 21600 21600";
glue_points = L"?f23 ?f25 ?f24 ?f26 ?f22 ?f27 ?f21 ?f27 ?f19 ?f26 ?f20 ?f25";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f4 / 2");
add(L"f6", L"?f2 + ?f5");
add(L"f7", L"?f1 - ?f0");
add(L"f8", L"?f7 / 2");
add(L"f9", L"?f0 + ?f8");
add(L"f10", L"?f8 * ?f29 / 100000");
add(L"f11", L"?f5 * ?f30 / 100000");
add(L"f12", L"?f6 * ?f30 / 100000");
add(L"f13", L"?f10 * 97493 / 100000");
add(L"f14", L"?f10 * 78183 / 100000");
add(L"f15", L"?f10 * 43388 / 100000");
add(L"f16", L"?f11 * 62349 / 100000");
add(L"f17", L"?f11 * 22252 / 100000");
add(L"f18", L"?f11 * 90097 / 100000");
add(L"f19", L"?f9 - ?f13");
add(L"f20", L"?f9 - ?f14");
add(L"f21", L"?f9 - ?f15");
add(L"f22", L"?f9 + ?f15");
add(L"f23", L"?f9 + ?f14");
add(L"f24", L"?f9 + ?f13");
add(L"f25", L"?f12 - ?f16");
add(L"f26", L"?f12 + ?f17");
add(L"f27", L"?f12 + ?f18");
add(L"f28", L"?f3 - ?f25");
add(L"f29", L"102572");
add(L"f30", L"105210");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Decagon : public oox_shape
{
public:
oox_shape_Decagon()
{
odf_type_name =L"ooxml-decagon";
enhanced_path = L"M ?f2 ?f8 L ?f26 ?f37 ?f27 ?f36 ?f28 ?f36 ?f29 ?f37 ?f3 ?f8 ?f29 ?f38 ?f28 ?f39 ?f27 ?f39 ?f26 ?f38 Z N";
text_areas = L"?f6 ?f14 ?f9 ?f15";
view_box = L"0 0 21600 21600";
glue_points = L"?f29 ?f37 ?f29 ?f38 ?f28 ?f39 ?f27 ?f39 ?f26 ?f38 ?f26 ?f37 ?f27 ?f36 ?f28 ?f36";
add(L"f0", L"10800000");
add(L"f1", L"5400000");
add(L"f2", L"left");
add(L"f3", L"right");
add(L"f4", L"top");
add(L"f5", L"bottom");
add(L"f6", L"?f5 - ?f4");
add(L"f7", L"?f6 / 2");
add(L"f8", L"?f4 + ?f7");
add(L"f9", L"?f3 - ?f2");
add(L"f10", L"?f9 / 2");
add(L"f11", L"?f2 + ?f10");
add(L"f12", L"5419351 / 1725033");
add(L"f13", L"?f7 * ?f40 / 100000");
add(L"f14", L"2160000 + ?f1");
add(L"f15", L"?f14 * ?f12 / ?f0");
add(L"f16", L"0 - ?f15");
add(L"f17", L"sin(?f16)");
add(L"f18", L"0 - ?f17");
add(L"f19", L"?f18 * ?f10");
add(L"f20", L"4320000 + ?f1");
add(L"f21", L"?f20 * ?f12 / ?f0");
add(L"f22", L"0 - ?f21");
add(L"f23", L"sin(?f22)");
add(L"f24", L"0 - ?f23");
add(L"f25", L"?f24 * ?f10");
add(L"f26", L"?f11 - ?f19");
add(L"f27", L"?f11 - ?f25");
add(L"f28", L"?f11 + ?f25");
add(L"f29", L"?f11 + ?f19");
add(L"f30", L"cos(?f22)");
add(L"f31", L"0 - ?f30");
add(L"f32", L"?f31 * ?f13");
add(L"f33", L"cos(?f16)");
add(L"f34", L"0 - ?f33");
add(L"f35", L"?f34 * ?f13");
add(L"f36", L"?f8 - ?f32");
add(L"f37", L"?f8 - ?f35");
add(L"f38", L"?f8 + ?f35");
add(L"f39", L"?f8 + ?f32");
add(L"f40", L"105146");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Dodecagon : public oox_shape
{
public:
oox_shape_Dodecagon()
{
odf_type_name =L"ooxml-dodecagon";
enhanced_path = L"M ?f0 ?f11 L ?f6 ?f10 ?f7 ?f2 ?f8 ?f2 ?f9 ?f10 ?f1 ?f11 ?f1 ?f12 ?f9 ?f13 ?f8 ?f3 ?f7 ?f3 ?f6 ?f13 ?f0 ?f12 Z N";
text_areas = L"?f6 ?f10 ?f9 ?f13";
view_box = L"0 0 21600 21600";
glue_points = L"?f9 ?f10 ?f1 ?f11 ?f1 ?f12 ?f9 ?f13 ?f8 ?f3 ?f7 ?f3 ?f6 ?f13 ?f0 ?f12 ?f0 ?f11 ?f6 ?f10 ?f7 ?f2 ?f8 ?f2";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 * 2894 / 21600");
add(L"f7", L"?f5 * 7906 / 21600");
add(L"f8", L"?f5 * 13694 / 21600");
add(L"f9", L"?f5 * 18706 / 21600");
add(L"f10", L"?f4 * 2894 / 21600");
add(L"f11", L"?f4 * 7906 / 21600");
add(L"f12", L"?f4 * 13694 / 21600");
add(L"f13", L"?f4 * 18706 / 21600");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Cube : public oox_shape
{
public:
oox_shape_Cube()
{
odf_type_name =L"ooxml-cube";
modifiers = L"25000";
enhanced_path = L"S M ?f0 ?f8 L ?f12 ?f8 ?f12 ?f3 ?f0 ?f3 Z N S M ?f12 ?f8 L ?f1 ?f2 ?f1 ?f9 ?f12 ?f3 Z N S M ?f0 ?f8 L ?f8 ?f2 ?f1 ?f2 ?f12 ?f8 Z N F M ?f0 ?f8 L ?f8 ?f2 ?f1 ?f2 ?f1 ?f9 ?f12 ?f3 ?f0 ?f3 Z M ?f0 ?f8 L ?f12 ?f8 ?f1 ?f2 M ?f12 ?f8 L ?f12 ?f3 N";
text_areas = L"?f0 ?f8 ?f12 ?f3";
view_box = L"0 0 21600 21600";
glue_points = L"?f14 ?f2 ?f13 ?f8 ?f0 ?f11 ?f13 ?f3 ?f12 ?f11 ?f1 ?f10";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"min(?f5, ?f4)");
add(L"f7", L"$0");
add(L"f8", L"?f6 * ?f7 / 100000");
add(L"f9", L"?f3 - ?f8");
add(L"f10", L"?f9 / 2");
add(L"f11", L"(?f8 + ?f3) / 2");
add(L"f12", L"?f1 - ?f8");
add(L"f13", L"?f12 / 2");
add(L"f14", L"(?f8 + ?f1) / 2");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -30,6 +30,11 @@
*
*/
//+ shapetypeLeftRightRibbon
//+ shapetypeEllipseRibbon
//+ shapetypEllipseRibbon2
//+ shapetypEllipseRibbon
//+ shapetypRibbon
//+ shapetypRibbon2
namespace cpdoccore
{
class oox_shape_LeftRightRibbon : public oox_shape
@ -108,4 +113,935 @@ public:
handles.push_back(h3);
}
};
class oox_shape_EllipseRibbon : public oox_shape
{
public:
oox_shape_EllipseRibbon()
{
odf_type_name =L"ooxml-ellipseRibbon";
enhanced_path = L"S M ?f0 ?f2 Q ?f23 ?f24 ?f14 ?f22 L ?f13 ?f31 Q ?f8 ?f34 ?f16 ?f31 L ?f15 ?f22 Q ?f25 ?f24 ?f1 ?f2 L ?f17 ?f37 ?f1 ?f35 Q ?f43 ?f42 ?f16 ?f38 L ?f16 ?f39 Q ?f8 ?f44 ?f13 ?f39 L ?f13 ?f38 Q ?f40 ?f42 ?f0 ?f35 L ?f7 ?f37 Z N S M ?f14 ?f45 L ?f14 ?f22 ?f13 ?f31 Q ?f8 ?f34 ?f16 ?f31 L ?f15 ?f22 ?f15 ?f45 Q ?f8 ?f46 ?f14 ?f45 Z N F M ?f0 ?f2 Q ?f23 ?f24 ?f14 ?f22 L ?f13 ?f31 Q ?f8 ?f34 ?f16 ?f31 L ?f15 ?f22 Q ?f25 ?f24 ?f1 ?f2 L ?f17 ?f37 ?f1 ?f35 Q ?f43 ?f42 ?f16 ?f38 L ?f16 ?f39 Q ?f8 ?f44 ?f13 ?f39 L ?f13 ?f38 Q ?f40 ?f42 ?f0 ?f35 L ?f7 ?f37 Z M ?f13 ?f38 L ?f13 ?f31 M ?f16 ?f31 L ?f16 ?f38 M ?f14 ?f22 L ?f14 ?f45 M ?f15 ?f45 L ?f15 ?f22 N";
text_areas = L"?f13 ?f26 ?f16 ?f39";
view_box = L"0 0 21600 21600";
modifiers = L"25000 50000 12500";
glue_points = L"?f8 ?f26 ?f7 ?f37 ?f17 ?f37";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 / 2");
add(L"f7", L"?f5 / 8");
add(L"f8", L"?f0 + ?f6");
add(L"f9", L"$0");
add(L"f10", L"$1");
add(L"f11", L"$2");
add(L"f12", L"?f5 * ?f10 / 200000");
add(L"f13", L"?f8 - ?f12");
add(L"f14", L"?f13 + ?f7");
add(L"f15", L"?f1 - ?f14");
add(L"f16", L"?f1 - ?f13");
add(L"f17", L"?f1 - ?f7");
add(L"f18", L"?f4 * ?f11 / 100000");
add(L"f19", L"4 * ?f18 / ?f5");
add(L"f20", L"?f14 * ?f14 / ?f5");
add(L"f21", L"?f14 - ?f20");
add(L"f22", L"?f19 * ?f21");
add(L"f23", L"?f14 / 2");
add(L"f24", L"?f19 * ?f23");
add(L"f25", L"?f1 - ?f23");
add(L"f26", L"?f4 * ?f9 / 100000");
add(L"f27", L"?f26 - ?f18");
add(L"f28", L"?f13 * ?f13 / ?f5");
add(L"f29", L"?f13 - ?f28");
add(L"f30", L"?f19 * ?f29");
add(L"f31", L"?f30 + ?f27");
add(L"f32", L"?f18 + ?f27 - ?f31");
add(L"f33", L"?f32 + ?f18");
add(L"f34", L"?f33 + ?f27");
add(L"f35", L"?f3 - ?f26");
add(L"f36", L"?f18 * 14 / 16");
add(L"f37", L"(?f36 + ?f35) / 2");
add(L"f38", L"?f30 + ?f35");
add(L"f39", L"?f31 + ?f35");
add(L"f40", L"?f13 / 2");
add(L"f41", L"?f19 * ?f40");
add(L"f42", L"?f41 + ?f35");
add(L"f43", L"?f1 - ?f40");
add(L"f44", L"?f34 + ?f35");
add(L"f45", L"?f22 + ?f27");
add(L"f46", L"?f26 + ?f26 - ?f45");
/////////////////////////////////////////////////////////
}
};
class oox_shape_EllipseRibbon2 : public oox_shape
{
public:
oox_shape_EllipseRibbon2()
{
odf_type_name =L"ooxml-ellipseRibbon2";
enhanced_path = L"S M ?f0 ?f3 Q ?f24 ?f26 ?f14 ?f23 L ?f13 ?f34 Q ?f8 ?f38 ?f16 ?f34 L ?f15 ?f23 Q ?f27 ?f26 ?f1 ?f3 L ?f17 ?f42 ?f1 ?f28 Q ?f51 ?f50 ?f16 ?f44 L ?f16 ?f46 Q ?f8 ?f53 ?f13 ?f46 L ?f13 ?f44 Q ?f47 ?f50 ?f0 ?f28 L ?f7 ?f42 Z N S M ?f14 ?f55 L ?f14 ?f23 ?f13 ?f34 Q ?f8 ?f38 ?f16 ?f34 L ?f15 ?f23 ?f15 ?f55 Q ?f8 ?f57 ?f14 ?f55 Z N F M ?f0 ?f3 L ?f7 ?f42 ?f0 ?f28 Q ?f47 ?f50 ?f13 ?f44 L ?f13 ?f46 Q ?f8 ?f53 ?f16 ?f46 L ?f16 ?f44 Q ?f51 ?f50 ?f1 ?f28 L ?f17 ?f42 ?f1 ?f3 Q ?f27 ?f26 ?f15 ?f23 L ?f16 ?f34 Q ?f8 ?f38 ?f13 ?f34 L ?f14 ?f23 Q ?f24 ?f26 ?f0 ?f3 Z M ?f13 ?f34 L ?f13 ?f44 M ?f16 ?f44 L ?f16 ?f34 M ?f14 ?f55 L ?f14 ?f23 M ?f15 ?f23 L ?f15 ?f55 N";
text_areas = L"?f13 ?f46 ?f16 ?f39";
view_box = L"0 0 21600 21600";
modifiers = L"25000 50000 12500";
glue_points = L"?f7 ?f42 ?f8 ?f39 ?f17 ?f42";
add(L"f0", L"left");
add(L"f1", L"right");
add(L"f2", L"top");
add(L"f3", L"bottom");
add(L"f4", L"?f3 - ?f2");
add(L"f5", L"?f1 - ?f0");
add(L"f6", L"?f5 / 2");
add(L"f7", L"?f5 / 8");
add(L"f8", L"?f0 + ?f6");
add(L"f9", L"$0");
add(L"f10", L"$1");
add(L"f11", L"$2");
add(L"f12", L"?f5 * ?f10 / 200000");
add(L"f13", L"?f8 - ?f12");
add(L"f14", L"?f13 + ?f7");
add(L"f15", L"?f1 - ?f14");
add(L"f16", L"?f1 - ?f13");
add(L"f17", L"?f1 - ?f7");
add(L"f18", L"?f4 * ?f11 / 100000");
add(L"f19", L"4 * ?f18 / ?f5");
add(L"f20", L"?f14 * ?f14 / ?f5");
add(L"f21", L"?f14 - ?f20");
add(L"f22", L"?f19 * ?f21");
add(L"f23", L"?f3 - ?f22");
add(L"f24", L"?f14 / 2");
add(L"f25", L"?f19 * ?f24");
add(L"f26", L"?f3 - ?f25");
add(L"f27", L"?f1 - ?f24");
add(L"f28", L"?f4 * ?f9 / 100000");
add(L"f29", L"?f28 - ?f18");
add(L"f30", L"?f13 * ?f13 / ?f5");
add(L"f31", L"?f13 - ?f30");
add(L"f32", L"?f19 * ?f31");
add(L"f33", L"?f32 + ?f29");
add(L"f34", L"?f3 - ?f33");
add(L"f35", L"?f18 + ?f29 - ?f33");
add(L"f36", L"?f35 + ?f18");
add(L"f37", L"?f36 + ?f29");
add(L"f38", L"?f3 - ?f37");
add(L"f39", L"?f3 - ?f28");
add(L"f40", L"?f18 * 14 / 16");
add(L"f41", L"(?f40 + ?f39) / 2");
add(L"f42", L"?f3 - ?f41");
add(L"f43", L"?f32 + ?f39");
add(L"f44", L"?f3 - ?f43");
add(L"f45", L"?f33 + ?f39");
add(L"f46", L"?f3 - ?f45");
add(L"f47", L"?f13 / 2");
add(L"f48", L"?f19 * ?f47");
add(L"f49", L"?f48 + ?f39");
add(L"f50", L"?f3 - ?f49");
add(L"f51", L"?f1 - ?f47");
add(L"f52", L"?f37 + ?f39");
add(L"f53", L"?f3 - ?f52");
add(L"f54", L"?f22 + ?f29");
add(L"f55", L"?f3 - ?f54");
add(L"f56", L"?f28 + ?f28 - ?f54");
add(L"f57", L"?f3 - ?f56");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Ribbon : public oox_shape
{
public:
oox_shape_Ribbon()
{
odf_type_name =L"ooxml-ribbon";
enhanced_path = L"S M ?f3 ?f5 L ?f24 ?f5 A ?f72 ?f73 ?f74 ?f75 ?f24 ?f5 ?f69 ?f71 W ?f76 ?f77 ?f78 ?f79 ?f24 ?f5 ?f69 ?f71 L ?f20 ?f26 A ?f106 ?f107 ?f108 ?f109 ?f20 ?f26 ?f103 ?f105 W ?f110 ?f111 ?f112 ?f113 ?f20 ?f26 ?f103 ?f105 L ?f21 ?f27 A ?f149 ?f150 ?f151 ?f152 ?f21 ?f27 ?f146 ?f148 W ?f153 ?f154 ?f155 ?f156 ?f21 ?f27 ?f146 ?f148 L ?f25 ?f26 A ?f179 ?f180 ?f181 ?f182 ?f25 ?f26 ?f176 ?f178 W ?f183 ?f184 ?f185 ?f186 ?f25 ?f26 ?f176 ?f178 L ?f4 ?f5 ?f16 ?f29 ?f4 ?f28 ?f19 ?f28 ?f19 ?f31 A ?f226 ?f227 ?f228 ?f229 ?f19 ?f31 ?f223 ?f225 W ?f230 ?f231 ?f232 ?f233 ?f19 ?f31 ?f223 ?f225 L ?f20 ?f6 A ?f256 ?f257 ?f258 ?f259 ?f20 ?f6 ?f253 ?f255 W ?f260 ?f261 ?f262 ?f263 ?f20 ?f6 ?f253 ?f255 L ?f18 ?f28 ?f3 ?f28 ?f10 ?f29 Z N S M ?f22 ?f30 A ?f272 ?f273 ?f274 ?f275 ?f22 ?f30 ?f270 ?f271 W ?f276 ?f277 ?f278 ?f279 ?f22 ?f30 ?f270 ?f271 L ?f20 ?f26 A ?f106 ?f107 ?f108 ?f109 ?f20 ?f26 ?f103 ?f105 W ?f110 ?f111 ?f112 ?f113 ?f20 ?f26 ?f103 ?f105 L ?f22 ?f27 Z M ?f23 ?f30 A ?f319 ?f320 ?f321 ?f322 ?f23 ?f30 ?f316 ?f318 W ?f323 ?f324 ?f325 ?f326 ?f23 ?f30 ?f316 ?f318 L ?f21 ?f26 A ?f332 ?f333 ?f334 ?f335 ?f21 ?f26 ?f330 ?f331 W ?f336 ?f337 ?f338 ?f339 ?f21 ?f26 ?f330 ?f331 L ?f23 ?f27 Z N F M ?f3 ?f5 L ?f24 ?f5 A ?f72 ?f73 ?f74 ?f75 ?f24 ?f5 ?f69 ?f71 W ?f76 ?f77 ?f78 ?f79 ?f24 ?f5 ?f69 ?f71 L ?f20 ?f26 A ?f106 ?f107 ?f108 ?f109 ?f20 ?f26 ?f103 ?f105 W ?f110 ?f111 ?f112 ?f113 ?f20 ?f26 ?f103 ?f105 L ?f21 ?f27 A ?f149 ?f150 ?f151 ?f152 ?f21 ?f27 ?f146 ?f148 W ?f153 ?f154 ?f155 ?f156 ?f21 ?f27 ?f146 ?f148 L ?f25 ?f26 A ?f179 ?f180 ?f181 ?f182 ?f25 ?f26 ?f176 ?f178 W ?f183 ?f184 ?f185 ?f186 ?f25 ?f26 ?f176 ?f178 L ?f4 ?f5 ?f16 ?f29 ?f4 ?f28 ?f19 ?f28 ?f19 ?f31 A ?f226 ?f227 ?f228 ?f229 ?f19 ?f31 ?f223 ?f225 W ?f230 ?f231 ?f232 ?f233 ?f19 ?f31 ?f223 ?f225 L ?f20 ?f6 A ?f256 ?f257 ?f258 ?f259 ?f20 ?f6 ?f253 ?f255 W ?f260 ?f261 ?f262 ?f263 ?f20 ?f6 ?f253 ?f255 L ?f18 ?f28 ?f3 ?f28 ?f10 ?f29 Z M ?f22 ?f30 L ?f22 ?f27 M ?f23 ?f27 L ?f23 ?f30 M ?f18 ?f28 L ?f18 ?f32 M ?f19 ?f32 L ?f19 ?f28 N";
text_areas = L"?f18 ?f27 ?f19 ?f6";
view_box = L"0 0 21600 21600";
modifiers = L"16667 50000";
glue_points = L"?f12 ?f27 ?f10 ?f29 ?f16 ?f29";
add(L"f0", L"16200000");
add(L"f1", L"10800000");
add(L"f2", L"5400000");
add(L"f3", L"left");
add(L"f4", L"right");
add(L"f5", L"top");
add(L"f6", L"bottom");
add(L"f7", L"?f6 - ?f5");
add(L"f8", L"?f4 - ?f3");
add(L"f9", L"?f8 / 2");
add(L"f10", L"?f8 / 8");
add(L"f11", L"?f8 / 32");
add(L"f12", L"?f3 + ?f9");
add(L"f13", L"5419351 / 1725033");
add(L"f14", L"$0");
add(L"f15", L"$1");
add(L"f16", L"?f4 - ?f10");
add(L"f17", L"?f8 * ?f15 / 200000");
add(L"f18", L"?f12 - ?f17");
add(L"f19", L"?f12 + ?f17");
add(L"f20", L"?f18 + ?f11");
add(L"f21", L"?f19 - ?f11");
add(L"f22", L"?f18 + ?f10");
add(L"f23", L"?f19 - ?f10");
add(L"f24", L"?f22 - ?f11");
add(L"f25", L"?f23 + ?f11");
add(L"f26", L"?f7 * ?f14 / 200000");
add(L"f27", L"?f7 * ?f14 / 100000");
add(L"f28", L"?f6 - ?f27");
add(L"f29", L"?f28 / 2");
add(L"f30", L"?f7 * ?f14 / 400000");
add(L"f31", L"?f6 - ?f30");
add(L"f32", L"?f27 - ?f30");
add(L"f33", L"21550000 - ?f1");
add(L"f34", L"if(?f33, ?f1, 21550000)");
add(L"f35", L"-21550000 - ?f34");
add(L"f36", L"if(?f35, -21550000, ?f34)");
add(L"f37", L"?f0 + ?f36");
add(L"f38", L"?f0 + ?f2");
add(L"f39", L"?f38 * ?f13 / ?f1");
add(L"f40", L"0 - ?f39");
add(L"f41", L"cos(?f40)");
add(L"f42", L"0 - ?f41");
add(L"f43", L"?f42 * ?f11");
add(L"f44", L"sin(?f40)");
add(L"f45", L"0 - ?f44");
add(L"f46", L"?f45 * ?f30");
add(L"f47", L"sqrt(?f43 * ?f43 + ?f46 * ?f46 + 0 * 0)");
add(L"f48", L"?f11 * ?f30 / ?f47");
add(L"f49", L"?f45 * ?f48");
add(L"f50", L"?f24 - ?f49");
add(L"f51", L"?f42 * ?f48");
add(L"f52", L"?f5 - ?f51");
add(L"f53", L"?f50 - ?f11");
add(L"f54", L"?f52 - ?f30");
add(L"f55", L"?f50 + ?f11");
add(L"f56", L"?f52 + ?f30");
add(L"f57", L"?f37 + ?f2");
add(L"f58", L"?f57 * ?f13 / ?f1");
add(L"f59", L"0 - ?f58");
add(L"f60", L"cos(?f59)");
add(L"f61", L"0 - ?f60");
add(L"f62", L"?f61 * ?f11");
add(L"f63", L"sin(?f59)");
add(L"f64", L"0 - ?f63");
add(L"f65", L"?f64 * ?f30");
add(L"f66", L"sqrt(?f62 * ?f62 + ?f65 * ?f65 + 0 * 0)");
add(L"f67", L"?f11 * ?f30 / ?f66");
add(L"f68", L"?f64 * ?f67");
add(L"f69", L"?f50 + ?f68");
add(L"f70", L"?f61 * ?f67");
add(L"f71", L"?f52 + ?f70");
add(L"f72", L"if(?f36, ?f24, ?f53)");
add(L"f73", L"if(?f36, ?f5, ?f54)");
add(L"f74", L"if(?f36, ?f24, ?f55)");
add(L"f75", L"if(?f36, ?f5, ?f56)");
add(L"f76", L"if(?f36, ?f53, ?f69)");
add(L"f77", L"if(?f36, ?f54, ?f71)");
add(L"f78", L"if(?f36, ?f55, ?f69)");
add(L"f79", L"if(?f36, ?f56, ?f71)");
add(L"f80", L"21550000 - -10800000");
add(L"f81", L"if(?f80, -10800000, 21550000)");
add(L"f82", L"-21550000 - ?f81");
add(L"f83", L"if(?f82, -21550000, ?f81)");
add(L"f84", L"?f0 + ?f83");
add(L"f85", L"?f20 - ?f49");
add(L"f86", L"?f26 - ?f51");
add(L"f87", L"?f85 - ?f11");
add(L"f88", L"?f86 - ?f30");
add(L"f89", L"?f85 + ?f11");
add(L"f90", L"?f86 + ?f30");
add(L"f91", L"?f84 + ?f2");
add(L"f92", L"?f91 * ?f13 / ?f1");
add(L"f93", L"0 - ?f92");
add(L"f94", L"cos(?f93)");
add(L"f95", L"0 - ?f94");
add(L"f96", L"?f95 * ?f11");
add(L"f97", L"sin(?f93)");
add(L"f98", L"0 - ?f97");
add(L"f99", L"?f98 * ?f30");
add(L"f100", L"sqrt(?f96 * ?f96 + ?f99 * ?f99 + 0 * 0)");
add(L"f101", L"?f11 * ?f30 / ?f100");
add(L"f102", L"?f98 * ?f101");
add(L"f103", L"?f85 + ?f102");
add(L"f104", L"?f95 * ?f101");
add(L"f105", L"?f86 + ?f104");
add(L"f106", L"if(?f83, ?f20, ?f87)");
add(L"f107", L"if(?f83, ?f26, ?f88)");
add(L"f108", L"if(?f83, ?f20, ?f89)");
add(L"f109", L"if(?f83, ?f26, ?f90)");
add(L"f110", L"if(?f83, ?f87, ?f103)");
add(L"f111", L"if(?f83, ?f88, ?f105)");
add(L"f112", L"if(?f83, ?f89, ?f103)");
add(L"f113", L"if(?f83, ?f90, ?f105)");
add(L"f114", L"?f2 + ?f83");
add(L"f115", L"?f2 + ?f2");
add(L"f116", L"?f115 * ?f13 / ?f1");
add(L"f117", L"0 - ?f116");
add(L"f118", L"cos(?f117)");
add(L"f119", L"0 - ?f118");
add(L"f120", L"?f119 * ?f11");
add(L"f121", L"sin(?f117)");
add(L"f122", L"0 - ?f121");
add(L"f123", L"?f122 * ?f30");
add(L"f124", L"sqrt(?f120 * ?f120 + ?f123 * ?f123 + 0 * 0)");
add(L"f125", L"?f11 * ?f30 / ?f124");
add(L"f126", L"?f122 * ?f125");
add(L"f127", L"?f21 - ?f126");
add(L"f128", L"?f119 * ?f125");
add(L"f129", L"?f27 - ?f128");
add(L"f130", L"?f127 - ?f11");
add(L"f131", L"?f129 - ?f30");
add(L"f132", L"?f127 + ?f11");
add(L"f133", L"?f129 + ?f30");
add(L"f134", L"?f114 + ?f2");
add(L"f135", L"?f134 * ?f13 / ?f1");
add(L"f136", L"0 - ?f135");
add(L"f137", L"cos(?f136)");
add(L"f138", L"0 - ?f137");
add(L"f139", L"?f138 * ?f11");
add(L"f140", L"sin(?f136)");
add(L"f141", L"0 - ?f140");
add(L"f142", L"?f141 * ?f30");
add(L"f143", L"sqrt(?f139 * ?f139 + ?f142 * ?f142 + 0 * 0)");
add(L"f144", L"?f11 * ?f30 / ?f143");
add(L"f145", L"?f141 * ?f144");
add(L"f146", L"?f127 + ?f145");
add(L"f147", L"?f138 * ?f144");
add(L"f148", L"?f129 + ?f147");
add(L"f149", L"if(?f83, ?f21, ?f130)");
add(L"f150", L"if(?f83, ?f27, ?f131)");
add(L"f151", L"if(?f83, ?f21, ?f132)");
add(L"f152", L"if(?f83, ?f27, ?f133)");
add(L"f153", L"if(?f83, ?f130, ?f146)");
add(L"f154", L"if(?f83, ?f131, ?f148)");
add(L"f155", L"if(?f83, ?f132, ?f146)");
add(L"f156", L"if(?f83, ?f133, ?f148)");
add(L"f157", L"?f2 + ?f36");
add(L"f158", L"?f25 - ?f126");
add(L"f159", L"?f26 - ?f128");
add(L"f160", L"?f158 - ?f11");
add(L"f161", L"?f159 - ?f30");
add(L"f162", L"?f158 + ?f11");
add(L"f163", L"?f159 + ?f30");
add(L"f164", L"?f157 + ?f2");
add(L"f165", L"?f164 * ?f13 / ?f1");
add(L"f166", L"0 - ?f165");
add(L"f167", L"cos(?f166)");
add(L"f168", L"0 - ?f167");
add(L"f169", L"?f168 * ?f11");
add(L"f170", L"sin(?f166)");
add(L"f171", L"0 - ?f170");
add(L"f172", L"?f171 * ?f30");
add(L"f173", L"sqrt(?f169 * ?f169 + ?f172 * ?f172 + 0 * 0)");
add(L"f174", L"?f11 * ?f30 / ?f173");
add(L"f175", L"?f171 * ?f174");
add(L"f176", L"?f158 + ?f175");
add(L"f177", L"?f168 * ?f174");
add(L"f178", L"?f159 + ?f177");
add(L"f179", L"if(?f36, ?f25, ?f160)");
add(L"f180", L"if(?f36, ?f26, ?f161)");
add(L"f181", L"if(?f36, ?f25, ?f162)");
add(L"f182", L"if(?f36, ?f26, ?f163)");
add(L"f183", L"if(?f36, ?f160, ?f176)");
add(L"f184", L"if(?f36, ?f161, ?f178)");
add(L"f185", L"if(?f36, ?f162, ?f176)");
add(L"f186", L"if(?f36, ?f163, ?f178)");
add(L"f187", L"21550000 - ?f2");
add(L"f188", L"if(?f187, ?f2, 21550000)");
add(L"f189", L"-21550000 - ?f188");
add(L"f190", L"if(?f189, -21550000, ?f188)");
add(L"f191", L"0 + ?f190");
add(L"f192", L"0 + ?f2");
add(L"f193", L"?f192 * ?f13 / ?f1");
add(L"f194", L"0 - ?f193");
add(L"f195", L"cos(?f194)");
add(L"f196", L"0 - ?f195");
add(L"f197", L"?f196 * ?f11");
add(L"f198", L"sin(?f194)");
add(L"f199", L"0 - ?f198");
add(L"f200", L"?f199 * ?f30");
add(L"f201", L"sqrt(?f197 * ?f197 + ?f200 * ?f200 + 0 * 0)");
add(L"f202", L"?f11 * ?f30 / ?f201");
add(L"f203", L"?f199 * ?f202");
add(L"f204", L"?f19 - ?f203");
add(L"f205", L"?f196 * ?f202");
add(L"f206", L"?f31 - ?f205");
add(L"f207", L"?f204 - ?f11");
add(L"f208", L"?f206 - ?f30");
add(L"f209", L"?f204 + ?f11");
add(L"f210", L"?f206 + ?f30");
add(L"f211", L"?f191 + ?f2");
add(L"f212", L"?f211 * ?f13 / ?f1");
add(L"f213", L"0 - ?f212");
add(L"f214", L"cos(?f213)");
add(L"f215", L"0 - ?f214");
add(L"f216", L"?f215 * ?f11");
add(L"f217", L"sin(?f213)");
add(L"f218", L"0 - ?f217");
add(L"f219", L"?f218 * ?f30");
add(L"f220", L"sqrt(?f216 * ?f216 + ?f219 * ?f219 + 0 * 0)");
add(L"f221", L"?f11 * ?f30 / ?f220");
add(L"f222", L"?f218 * ?f221");
add(L"f223", L"?f204 + ?f222");
add(L"f224", L"?f215 * ?f221");
add(L"f225", L"?f206 + ?f224");
add(L"f226", L"if(?f190, ?f19, ?f207)");
add(L"f227", L"if(?f190, ?f31, ?f208)");
add(L"f228", L"if(?f190, ?f19, ?f209)");
add(L"f229", L"if(?f190, ?f31, ?f210)");
add(L"f230", L"if(?f190, ?f207, ?f223)");
add(L"f231", L"if(?f190, ?f208, ?f225)");
add(L"f232", L"if(?f190, ?f209, ?f223)");
add(L"f233", L"if(?f190, ?f210, ?f225)");
add(L"f234", L"?f2 + ?f190");
add(L"f235", L"?f20 - ?f126");
add(L"f236", L"?f6 - ?f128");
add(L"f237", L"?f235 - ?f11");
add(L"f238", L"?f236 - ?f30");
add(L"f239", L"?f235 + ?f11");
add(L"f240", L"?f236 + ?f30");
add(L"f241", L"?f234 + ?f2");
add(L"f242", L"?f241 * ?f13 / ?f1");
add(L"f243", L"0 - ?f242");
add(L"f244", L"cos(?f243)");
add(L"f245", L"0 - ?f244");
add(L"f246", L"?f245 * ?f11");
add(L"f247", L"sin(?f243)");
add(L"f248", L"0 - ?f247");
add(L"f249", L"?f248 * ?f30");
add(L"f250", L"sqrt(?f246 * ?f246 + ?f249 * ?f249 + 0 * 0)");
add(L"f251", L"?f11 * ?f30 / ?f250");
add(L"f252", L"?f248 * ?f251");
add(L"f253", L"?f235 + ?f252");
add(L"f254", L"?f245 * ?f251");
add(L"f255", L"?f236 + ?f254");
add(L"f256", L"if(?f190, ?f20, ?f237)");
add(L"f257", L"if(?f190, ?f6, ?f238)");
add(L"f258", L"if(?f190, ?f20, ?f239)");
add(L"f259", L"if(?f190, ?f6, ?f240)");
add(L"f260", L"if(?f190, ?f237, ?f253)");
add(L"f261", L"if(?f190, ?f238, ?f255)");
add(L"f262", L"if(?f190, ?f239, ?f253)");
add(L"f263", L"if(?f190, ?f240, ?f255)");
add(L"f264", L"?f22 - ?f203");
add(L"f265", L"?f30 - ?f205");
add(L"f266", L"?f264 - ?f11");
add(L"f267", L"?f265 - ?f30");
add(L"f268", L"?f264 + ?f11");
add(L"f269", L"?f265 + ?f30");
add(L"f270", L"?f264 + ?f222");
add(L"f271", L"?f265 + ?f224");
add(L"f272", L"if(?f190, ?f22, ?f266)");
add(L"f273", L"if(?f190, ?f30, ?f267)");
add(L"f274", L"if(?f190, ?f22, ?f268)");
add(L"f275", L"if(?f190, ?f30, ?f269)");
add(L"f276", L"if(?f190, ?f266, ?f270)");
add(L"f277", L"if(?f190, ?f267, ?f271)");
add(L"f278", L"if(?f190, ?f268, ?f270)");
add(L"f279", L"if(?f190, ?f269, ?f271)");
add(L"f280", L"21550000 - -5400000");
add(L"f281", L"if(?f280, -5400000, 21550000)");
add(L"f282", L"-21550000 - ?f281");
add(L"f283", L"if(?f282, -21550000, ?f281)");
add(L"f284", L"?f1 + ?f283");
add(L"f285", L"?f1 + ?f2");
add(L"f286", L"?f285 * ?f13 / ?f1");
add(L"f287", L"0 - ?f286");
add(L"f288", L"cos(?f287)");
add(L"f289", L"0 - ?f288");
add(L"f290", L"?f289 * ?f11");
add(L"f291", L"sin(?f287)");
add(L"f292", L"0 - ?f291");
add(L"f293", L"?f292 * ?f30");
add(L"f294", L"sqrt(?f290 * ?f290 + ?f293 * ?f293 + 0 * 0)");
add(L"f295", L"?f11 * ?f30 / ?f294");
add(L"f296", L"?f292 * ?f295");
add(L"f297", L"?f23 - ?f296");
add(L"f298", L"?f289 * ?f295");
add(L"f299", L"?f30 - ?f298");
add(L"f300", L"?f297 - ?f11");
add(L"f301", L"?f299 - ?f30");
add(L"f302", L"?f297 + ?f11");
add(L"f303", L"?f299 + ?f30");
add(L"f304", L"?f284 + ?f2");
add(L"f305", L"?f304 * ?f13 / ?f1");
add(L"f306", L"0 - ?f305");
add(L"f307", L"cos(?f306)");
add(L"f308", L"0 - ?f307");
add(L"f309", L"?f308 * ?f11");
add(L"f310", L"sin(?f306)");
add(L"f311", L"0 - ?f310");
add(L"f312", L"?f311 * ?f30");
add(L"f313", L"sqrt(?f309 * ?f309 + ?f312 * ?f312 + 0 * 0)");
add(L"f314", L"?f11 * ?f30 / ?f313");
add(L"f315", L"?f311 * ?f314");
add(L"f316", L"?f297 + ?f315");
add(L"f317", L"?f308 * ?f314");
add(L"f318", L"?f299 + ?f317");
add(L"f319", L"if(?f283, ?f23, ?f300)");
add(L"f320", L"if(?f283, ?f30, ?f301)");
add(L"f321", L"if(?f283, ?f23, ?f302)");
add(L"f322", L"if(?f283, ?f30, ?f303)");
add(L"f323", L"if(?f283, ?f300, ?f316)");
add(L"f324", L"if(?f283, ?f301, ?f318)");
add(L"f325", L"if(?f283, ?f302, ?f316)");
add(L"f326", L"if(?f283, ?f303, ?f318)");
add(L"f327", L"?f21 - ?f49");
add(L"f328", L"?f327 - ?f11");
add(L"f329", L"?f327 + ?f11");
add(L"f330", L"?f327 + ?f68");
add(L"f331", L"?f86 + ?f70");
add(L"f332", L"if(?f36, ?f21, ?f328)");
add(L"f333", L"if(?f36, ?f26, ?f88)");
add(L"f334", L"if(?f36, ?f21, ?f329)");
add(L"f335", L"if(?f36, ?f26, ?f90)");
add(L"f336", L"if(?f36, ?f328, ?f330)");
add(L"f337", L"if(?f36, ?f88, ?f331)");
add(L"f338", L"if(?f36, ?f329, ?f330)");
add(L"f339", L"if(?f36, ?f90, ?f331)");
/////////////////////////////////////////////////////////
}
};
class oox_shape_Ribbon2 : public oox_shape
{
public:
oox_shape_Ribbon2()
{
odf_type_name =L"ooxml-ribbon2";
enhanced_path = L"S M ?f3 ?f6 L ?f24 ?f6 A ?f74 ?f75 ?f76 ?f77 ?f24 ?f6 ?f71 ?f73 W ?f78 ?f79 ?f80 ?f81 ?f24 ?f6 ?f71 ?f73 L ?f20 ?f27 A ?f108 ?f109 ?f110 ?f111 ?f20 ?f27 ?f105 ?f107 W ?f112 ?f113 ?f114 ?f115 ?f20 ?f27 ?f105 ?f107 L ?f21 ?f29 A ?f151 ?f152 ?f153 ?f154 ?f21 ?f29 ?f148 ?f150 W ?f155 ?f156 ?f157 ?f158 ?f21 ?f29 ?f148 ?f150 L ?f25 ?f27 A ?f181 ?f182 ?f183 ?f184 ?f25 ?f27 ?f178 ?f180 W ?f185 ?f186 ?f187 ?f188 ?f25 ?f27 ?f178 ?f180 L ?f4 ?f6 ?f16 ?f31 ?f4 ?f30 ?f19 ?f30 ?f19 ?f32 A ?f228 ?f229 ?f230 ?f231 ?f19 ?f32 ?f225 ?f227 W ?f232 ?f233 ?f234 ?f235 ?f19 ?f32 ?f225 ?f227 L ?f20 ?f5 A ?f258 ?f259 ?f260 ?f261 ?f20 ?f5 ?f255 ?f257 W ?f262 ?f263 ?f264 ?f265 ?f20 ?f5 ?f255 ?f257 L ?f18 ?f30 ?f3 ?f30 ?f10 ?f31 Z N S M ?f22 ?f33 A ?f274 ?f275 ?f276 ?f277 ?f22 ?f33 ?f272 ?f273 W ?f278 ?f279 ?f280 ?f281 ?f22 ?f33 ?f272 ?f273 L ?f20 ?f27 A ?f108 ?f109 ?f110 ?f111 ?f20 ?f27 ?f105 ?f107 W ?f112 ?f113 ?f114 ?f115 ?f20 ?f27 ?f105 ?f107 L ?f22 ?f29 Z M ?f23 ?f33 A ?f321 ?f322 ?f323 ?f324 ?f23 ?f33 ?f318 ?f320 W ?f325 ?f326 ?f327 ?f328 ?f23 ?f33 ?f318 ?f320 L ?f21 ?f27 A ?f334 ?f335 ?f336 ?f337 ?f21 ?f27 ?f332 ?f333 W ?f338 ?f339 ?f340 ?f341 ?f21 ?f27 ?f332 ?f333 L ?f23 ?f29 Z N F M ?f3 ?f6 L ?f10 ?f31 ?f3 ?f30 ?f18 ?f30 ?f18 ?f32 A ?f350 ?f351 ?f352 ?f353 ?f18 ?f32 ?f348 ?f349 W ?f354 ?f355 ?f356 ?f357 ?f18 ?f32 ?f348 ?f349 L ?f21 ?f5 A ?f374 ?f375 ?f376 ?f377 ?f21 ?f5 ?f371 ?f373 W ?f378 ?f379 ?f380 ?f381 ?f21 ?f5 ?f371 ?f373 L ?f19 ?f30 ?f19 ?f30 ?f4 ?f30 ?f16 ?f31 ?f4 ?f6 ?f25 ?f6 A ?f387 ?f388 ?f389 ?f390 ?f25 ?f6 ?f385 ?f386 W ?f391 ?f392 ?f393 ?f394 ?f25 ?f6 ?f385 ?f386 L ?f21 ?f27 A ?f334 ?f335 ?f336 ?f337 ?f21 ?f27 ?f332 ?f333 W ?f338 ?f339 ?f340 ?f341 ?f21 ?f27 ?f332 ?f333 L ?f20 ?f29 A ?f397 ?f398 ?f399 ?f400 ?f20 ?f29 ?f395 ?f396 W ?f401 ?f402 ?f403 ?f404 ?f20 ?f29 ?f395 ?f396 L ?f24 ?f27 A ?f410 ?f411 ?f412 ?f413 ?f24 ?f27 ?f408 ?f409 W ?f414 ?f415 ?f416 ?f417 ?f24 ?f27 ?f408 ?f409 Z M ?f22 ?f29 L ?f22 ?f33 M ?f23 ?f33 L ?f23 ?f29 M ?f18 ?f34 L ?f18 ?f30 M ?f19 ?f30 L ?f19 ?f34 N";
text_areas = L"?f18 ?f5 ?f19 ?f29";
view_box = L"0 0 21600 21600";
modifiers = L"16667 50000";
glue_points = L"?f10 ?f31 ?f12 ?f29 ?f16 ?f31";
add(L"f0", L"16200000");
add(L"f1", L"10800000");
add(L"f2", L"5400000");
add(L"f3", L"left");
add(L"f4", L"right");
add(L"f5", L"top");
add(L"f6", L"bottom");
add(L"f7", L"?f6 - ?f5");
add(L"f8", L"?f4 - ?f3");
add(L"f9", L"?f8 / 2");
add(L"f10", L"?f8 / 8");
add(L"f11", L"?f8 / 32");
add(L"f12", L"?f3 + ?f9");
add(L"f13", L"5419351 / 1725033");
add(L"f14", L"$0");
add(L"f15", L"$1");
add(L"f16", L"?f4 - ?f10");
add(L"f17", L"?f8 * ?f15 / 200000");
add(L"f18", L"?f12 - ?f17");
add(L"f19", L"?f12 + ?f17");
add(L"f20", L"?f18 + ?f11");
add(L"f21", L"?f19 - ?f11");
add(L"f22", L"?f18 + ?f10");
add(L"f23", L"?f19 - ?f10");
add(L"f24", L"?f22 - ?f11");
add(L"f25", L"?f23 + ?f11");
add(L"f26", L"?f7 * ?f14 / 200000");
add(L"f27", L"?f6 - ?f26");
add(L"f28", L"?f7 * ?f14 / 100000");
add(L"f29", L"?f6 - ?f28");
add(L"f30", L"?f5 + ?f28");
add(L"f31", L"(?f30 + ?f6) / 2");
add(L"f32", L"?f7 * ?f14 / 400000");
add(L"f33", L"?f6 - ?f32");
add(L"f34", L"?f27 - ?f32");
add(L"f35", L"21550000 - -10800000");
add(L"f36", L"if(?f35, -10800000, 21550000)");
add(L"f37", L"-21550000 - ?f36");
add(L"f38", L"if(?f37, -21550000, ?f36)");
add(L"f39", L"?f2 + ?f38");
add(L"f40", L"?f2 + ?f2");
add(L"f41", L"?f40 * ?f13 / ?f1");
add(L"f42", L"0 - ?f41");
add(L"f43", L"cos(?f42)");
add(L"f44", L"0 - ?f43");
add(L"f45", L"?f44 * ?f11");
add(L"f46", L"sin(?f42)");
add(L"f47", L"0 - ?f46");
add(L"f48", L"?f47 * ?f32");
add(L"f49", L"sqrt(?f45 * ?f45 + ?f48 * ?f48 + 0 * 0)");
add(L"f50", L"?f11 * ?f32 / ?f49");
add(L"f51", L"?f47 * ?f50");
add(L"f52", L"?f24 - ?f51");
add(L"f53", L"?f44 * ?f50");
add(L"f54", L"?f6 - ?f53");
add(L"f55", L"?f52 - ?f11");
add(L"f56", L"?f54 - ?f32");
add(L"f57", L"?f52 + ?f11");
add(L"f58", L"?f54 + ?f32");
add(L"f59", L"?f39 + ?f2");
add(L"f60", L"?f59 * ?f13 / ?f1");
add(L"f61", L"0 - ?f60");
add(L"f62", L"cos(?f61)");
add(L"f63", L"0 - ?f62");
add(L"f64", L"?f63 * ?f11");
add(L"f65", L"sin(?f61)");
add(L"f66", L"0 - ?f65");
add(L"f67", L"?f66 * ?f32");
add(L"f68", L"sqrt(?f64 * ?f64 + ?f67 * ?f67 + 0 * 0)");
add(L"f69", L"?f11 * ?f32 / ?f68");
add(L"f70", L"?f66 * ?f69");
add(L"f71", L"?f52 + ?f70");
add(L"f72", L"?f63 * ?f69");
add(L"f73", L"?f54 + ?f72");
add(L"f74", L"if(?f38, ?f24, ?f55)");
add(L"f75", L"if(?f38, ?f6, ?f56)");
add(L"f76", L"if(?f38, ?f24, ?f57)");
add(L"f77", L"if(?f38, ?f6, ?f58)");
add(L"f78", L"if(?f38, ?f55, ?f71)");
add(L"f79", L"if(?f38, ?f56, ?f73)");
add(L"f80", L"if(?f38, ?f57, ?f71)");
add(L"f81", L"if(?f38, ?f58, ?f73)");
add(L"f82", L"21550000 - ?f1");
add(L"f83", L"if(?f82, ?f1, 21550000)");
add(L"f84", L"-21550000 - ?f83");
add(L"f85", L"if(?f84, -21550000, ?f83)");
add(L"f86", L"?f2 + ?f85");
add(L"f87", L"?f20 - ?f51");
add(L"f88", L"?f27 - ?f53");
add(L"f89", L"?f87 - ?f11");
add(L"f90", L"?f88 - ?f32");
add(L"f91", L"?f87 + ?f11");
add(L"f92", L"?f88 + ?f32");
add(L"f93", L"?f86 + ?f2");
add(L"f94", L"?f93 * ?f13 / ?f1");
add(L"f95", L"0 - ?f94");
add(L"f96", L"cos(?f95)");
add(L"f97", L"0 - ?f96");
add(L"f98", L"?f97 * ?f11");
add(L"f99", L"sin(?f95)");
add(L"f100", L"0 - ?f99");
add(L"f101", L"?f100 * ?f32");
add(L"f102", L"sqrt(?f98 * ?f98 + ?f101 * ?f101 + 0 * 0)");
add(L"f103", L"?f11 * ?f32 / ?f102");
add(L"f104", L"?f100 * ?f103");
add(L"f105", L"?f87 + ?f104");
add(L"f106", L"?f97 * ?f103");
add(L"f107", L"?f88 + ?f106");
add(L"f108", L"if(?f85, ?f20, ?f89)");
add(L"f109", L"if(?f85, ?f27, ?f90)");
add(L"f110", L"if(?f85, ?f20, ?f91)");
add(L"f111", L"if(?f85, ?f27, ?f92)");
add(L"f112", L"if(?f85, ?f89, ?f105)");
add(L"f113", L"if(?f85, ?f90, ?f107)");
add(L"f114", L"if(?f85, ?f91, ?f105)");
add(L"f115", L"if(?f85, ?f92, ?f107)");
add(L"f116", L"?f0 + ?f85");
add(L"f117", L"?f0 + ?f2");
add(L"f118", L"?f117 * ?f13 / ?f1");
add(L"f119", L"0 - ?f118");
add(L"f120", L"cos(?f119)");
add(L"f121", L"0 - ?f120");
add(L"f122", L"?f121 * ?f11");
add(L"f123", L"sin(?f119)");
add(L"f124", L"0 - ?f123");
add(L"f125", L"?f124 * ?f32");
add(L"f126", L"sqrt(?f122 * ?f122 + ?f125 * ?f125 + 0 * 0)");
add(L"f127", L"?f11 * ?f32 / ?f126");
add(L"f128", L"?f124 * ?f127");
add(L"f129", L"?f21 - ?f128");
add(L"f130", L"?f121 * ?f127");
add(L"f131", L"?f29 - ?f130");
add(L"f132", L"?f129 - ?f11");
add(L"f133", L"?f131 - ?f32");
add(L"f134", L"?f129 + ?f11");
add(L"f135", L"?f131 + ?f32");
add(L"f136", L"?f116 + ?f2");
add(L"f137", L"?f136 * ?f13 / ?f1");
add(L"f138", L"0 - ?f137");
add(L"f139", L"cos(?f138)");
add(L"f140", L"0 - ?f139");
add(L"f141", L"?f140 * ?f11");
add(L"f142", L"sin(?f138)");
add(L"f143", L"0 - ?f142");
add(L"f144", L"?f143 * ?f32");
add(L"f145", L"sqrt(?f141 * ?f141 + ?f144 * ?f144 + 0 * 0)");
add(L"f146", L"?f11 * ?f32 / ?f145");
add(L"f147", L"?f143 * ?f146");
add(L"f148", L"?f129 + ?f147");
add(L"f149", L"?f140 * ?f146");
add(L"f150", L"?f131 + ?f149");
add(L"f151", L"if(?f85, ?f21, ?f132)");
add(L"f152", L"if(?f85, ?f29, ?f133)");
add(L"f153", L"if(?f85, ?f21, ?f134)");
add(L"f154", L"if(?f85, ?f29, ?f135)");
add(L"f155", L"if(?f85, ?f132, ?f148)");
add(L"f156", L"if(?f85, ?f133, ?f150)");
add(L"f157", L"if(?f85, ?f134, ?f148)");
add(L"f158", L"if(?f85, ?f135, ?f150)");
add(L"f159", L"?f0 + ?f38");
add(L"f160", L"?f25 - ?f128");
add(L"f161", L"?f27 - ?f130");
add(L"f162", L"?f160 - ?f11");
add(L"f163", L"?f161 - ?f32");
add(L"f164", L"?f160 + ?f11");
add(L"f165", L"?f161 + ?f32");
add(L"f166", L"?f159 + ?f2");
add(L"f167", L"?f166 * ?f13 / ?f1");
add(L"f168", L"0 - ?f167");
add(L"f169", L"cos(?f168)");
add(L"f170", L"0 - ?f169");
add(L"f171", L"?f170 * ?f11");
add(L"f172", L"sin(?f168)");
add(L"f173", L"0 - ?f172");
add(L"f174", L"?f173 * ?f32");
add(L"f175", L"sqrt(?f171 * ?f171 + ?f174 * ?f174 + 0 * 0)");
add(L"f176", L"?f11 * ?f32 / ?f175");
add(L"f177", L"?f173 * ?f176");
add(L"f178", L"?f160 + ?f177");
add(L"f179", L"?f170 * ?f176");
add(L"f180", L"?f161 + ?f179");
add(L"f181", L"if(?f38, ?f25, ?f162)");
add(L"f182", L"if(?f38, ?f27, ?f163)");
add(L"f183", L"if(?f38, ?f25, ?f164)");
add(L"f184", L"if(?f38, ?f27, ?f165)");
add(L"f185", L"if(?f38, ?f162, ?f178)");
add(L"f186", L"if(?f38, ?f163, ?f180)");
add(L"f187", L"if(?f38, ?f164, ?f178)");
add(L"f188", L"if(?f38, ?f165, ?f180)");
add(L"f189", L"21550000 - -5400000");
add(L"f190", L"if(?f189, -5400000, 21550000)");
add(L"f191", L"-21550000 - ?f190");
add(L"f192", L"if(?f191, -21550000, ?f190)");
add(L"f193", L"0 + ?f192");
add(L"f194", L"0 + ?f2");
add(L"f195", L"?f194 * ?f13 / ?f1");
add(L"f196", L"0 - ?f195");
add(L"f197", L"cos(?f196)");
add(L"f198", L"0 - ?f197");
add(L"f199", L"?f198 * ?f11");
add(L"f200", L"sin(?f196)");
add(L"f201", L"0 - ?f200");
add(L"f202", L"?f201 * ?f32");
add(L"f203", L"sqrt(?f199 * ?f199 + ?f202 * ?f202 + 0 * 0)");
add(L"f204", L"?f11 * ?f32 / ?f203");
add(L"f205", L"?f201 * ?f204");
add(L"f206", L"?f19 - ?f205");
add(L"f207", L"?f198 * ?f204");
add(L"f208", L"?f32 - ?f207");
add(L"f209", L"?f206 - ?f11");
add(L"f210", L"?f208 - ?f32");
add(L"f211", L"?f206 + ?f11");
add(L"f212", L"?f208 + ?f32");
add(L"f213", L"?f193 + ?f2");
add(L"f214", L"?f213 * ?f13 / ?f1");
add(L"f215", L"0 - ?f214");
add(L"f216", L"cos(?f215)");
add(L"f217", L"0 - ?f216");
add(L"f218", L"?f217 * ?f11");
add(L"f219", L"sin(?f215)");
add(L"f220", L"0 - ?f219");
add(L"f221", L"?f220 * ?f32");
add(L"f222", L"sqrt(?f218 * ?f218 + ?f221 * ?f221 + 0 * 0)");
add(L"f223", L"?f11 * ?f32 / ?f222");
add(L"f224", L"?f220 * ?f223");
add(L"f225", L"?f206 + ?f224");
add(L"f226", L"?f217 * ?f223");
add(L"f227", L"?f208 + ?f226");
add(L"f228", L"if(?f192, ?f19, ?f209)");
add(L"f229", L"if(?f192, ?f32, ?f210)");
add(L"f230", L"if(?f192, ?f19, ?f211)");
add(L"f231", L"if(?f192, ?f32, ?f212)");
add(L"f232", L"if(?f192, ?f209, ?f225)");
add(L"f233", L"if(?f192, ?f210, ?f227)");
add(L"f234", L"if(?f192, ?f211, ?f225)");
add(L"f235", L"if(?f192, ?f212, ?f227)");
add(L"f236", L"?f0 + ?f192");
add(L"f237", L"?f20 - ?f128");
add(L"f238", L"?f5 - ?f130");
add(L"f239", L"?f237 - ?f11");
add(L"f240", L"?f238 - ?f32");
add(L"f241", L"?f237 + ?f11");
add(L"f242", L"?f238 + ?f32");
add(L"f243", L"?f236 + ?f2");
add(L"f244", L"?f243 * ?f13 / ?f1");
add(L"f245", L"0 - ?f244");
add(L"f246", L"cos(?f245)");
add(L"f247", L"0 - ?f246");
add(L"f248", L"?f247 * ?f11");
add(L"f249", L"sin(?f245)");
add(L"f250", L"0 - ?f249");
add(L"f251", L"?f250 * ?f32");
add(L"f252", L"sqrt(?f248 * ?f248 + ?f251 * ?f251 + 0 * 0)");
add(L"f253", L"?f11 * ?f32 / ?f252");
add(L"f254", L"?f250 * ?f253");
add(L"f255", L"?f237 + ?f254");
add(L"f256", L"?f247 * ?f253");
add(L"f257", L"?f238 + ?f256");
add(L"f258", L"if(?f192, ?f20, ?f239)");
add(L"f259", L"if(?f192, ?f5, ?f240)");
add(L"f260", L"if(?f192, ?f20, ?f241)");
add(L"f261", L"if(?f192, ?f5, ?f242)");
add(L"f262", L"if(?f192, ?f239, ?f255)");
add(L"f263", L"if(?f192, ?f240, ?f257)");
add(L"f264", L"if(?f192, ?f241, ?f255)");
add(L"f265", L"if(?f192, ?f242, ?f257)");
add(L"f266", L"?f22 - ?f205");
add(L"f267", L"?f33 - ?f207");
add(L"f268", L"?f266 - ?f11");
add(L"f269", L"?f267 - ?f32");
add(L"f270", L"?f266 + ?f11");
add(L"f271", L"?f267 + ?f32");
add(L"f272", L"?f266 + ?f224");
add(L"f273", L"?f267 + ?f226");
add(L"f274", L"if(?f192, ?f22, ?f268)");
add(L"f275", L"if(?f192, ?f33, ?f269)");
add(L"f276", L"if(?f192, ?f22, ?f270)");
add(L"f277", L"if(?f192, ?f33, ?f271)");
add(L"f278", L"if(?f192, ?f268, ?f272)");
add(L"f279", L"if(?f192, ?f269, ?f273)");
add(L"f280", L"if(?f192, ?f270, ?f272)");
add(L"f281", L"if(?f192, ?f271, ?f273)");
add(L"f282", L"21550000 - ?f2");
add(L"f283", L"if(?f282, ?f2, 21550000)");
add(L"f284", L"-21550000 - ?f283");
add(L"f285", L"if(?f284, -21550000, ?f283)");
add(L"f286", L"?f1 + ?f285");
add(L"f287", L"?f1 + ?f2");
add(L"f288", L"?f287 * ?f13 / ?f1");
add(L"f289", L"0 - ?f288");
add(L"f290", L"cos(?f289)");
add(L"f291", L"0 - ?f290");
add(L"f292", L"?f291 * ?f11");
add(L"f293", L"sin(?f289)");
add(L"f294", L"0 - ?f293");
add(L"f295", L"?f294 * ?f32");
add(L"f296", L"sqrt(?f292 * ?f292 + ?f295 * ?f295 + 0 * 0)");
add(L"f297", L"?f11 * ?f32 / ?f296");
add(L"f298", L"?f294 * ?f297");
add(L"f299", L"?f23 - ?f298");
add(L"f300", L"?f291 * ?f297");
add(L"f301", L"?f33 - ?f300");
add(L"f302", L"?f299 - ?f11");
add(L"f303", L"?f301 - ?f32");
add(L"f304", L"?f299 + ?f11");
add(L"f305", L"?f301 + ?f32");
add(L"f306", L"?f286 + ?f2");
add(L"f307", L"?f306 * ?f13 / ?f1");
add(L"f308", L"0 - ?f307");
add(L"f309", L"cos(?f308)");
add(L"f310", L"0 - ?f309");
add(L"f311", L"?f310 * ?f11");
add(L"f312", L"sin(?f308)");
add(L"f313", L"0 - ?f312");
add(L"f314", L"?f313 * ?f32");
add(L"f315", L"sqrt(?f311 * ?f311 + ?f314 * ?f314 + 0 * 0)");
add(L"f316", L"?f11 * ?f32 / ?f315");
add(L"f317", L"?f313 * ?f316");
add(L"f318", L"?f299 + ?f317");
add(L"f319", L"?f310 * ?f316");
add(L"f320", L"?f301 + ?f319");
add(L"f321", L"if(?f285, ?f23, ?f302)");
add(L"f322", L"if(?f285, ?f33, ?f303)");
add(L"f323", L"if(?f285, ?f23, ?f304)");
add(L"f324", L"if(?f285, ?f33, ?f305)");
add(L"f325", L"if(?f285, ?f302, ?f318)");
add(L"f326", L"if(?f285, ?f303, ?f320)");
add(L"f327", L"if(?f285, ?f304, ?f318)");
add(L"f328", L"if(?f285, ?f305, ?f320)");
add(L"f329", L"?f21 - ?f51");
add(L"f330", L"?f329 - ?f11");
add(L"f331", L"?f329 + ?f11");
add(L"f332", L"?f329 + ?f70");
add(L"f333", L"?f88 + ?f72");
add(L"f334", L"if(?f38, ?f21, ?f330)");
add(L"f335", L"if(?f38, ?f27, ?f90)");
add(L"f336", L"if(?f38, ?f21, ?f331)");
add(L"f337", L"if(?f38, ?f27, ?f92)");
add(L"f338", L"if(?f38, ?f330, ?f332)");
add(L"f339", L"if(?f38, ?f90, ?f333)");
add(L"f340", L"if(?f38, ?f331, ?f332)");
add(L"f341", L"if(?f38, ?f92, ?f333)");
add(L"f342", L"?f18 - ?f298");
add(L"f343", L"?f32 - ?f300");
add(L"f344", L"?f342 - ?f11");
add(L"f345", L"?f343 - ?f32");
add(L"f346", L"?f342 + ?f11");
add(L"f347", L"?f343 + ?f32");
add(L"f348", L"?f342 + ?f317");
add(L"f349", L"?f343 + ?f319");
add(L"f350", L"if(?f285, ?f18, ?f344)");
add(L"f351", L"if(?f285, ?f32, ?f345)");
add(L"f352", L"if(?f285, ?f18, ?f346)");
add(L"f353", L"if(?f285, ?f32, ?f347)");
add(L"f354", L"if(?f285, ?f344, ?f348)");
add(L"f355", L"if(?f285, ?f345, ?f349)");
add(L"f356", L"if(?f285, ?f346, ?f348)");
add(L"f357", L"if(?f285, ?f347, ?f349)");
add(L"f358", L"?f0 + ?f285");
add(L"f359", L"?f358 + ?f2");
add(L"f360", L"?f359 * ?f13 / ?f1");
add(L"f361", L"0 - ?f360");
add(L"f362", L"cos(?f361)");
add(L"f363", L"0 - ?f362");
add(L"f364", L"?f363 * ?f11");
add(L"f365", L"sin(?f361)");
add(L"f366", L"0 - ?f365");
add(L"f367", L"?f366 * ?f32");
add(L"f368", L"sqrt(?f364 * ?f364 + ?f367 * ?f367 + 0 * 0)");
add(L"f369", L"?f11 * ?f32 / ?f368");
add(L"f370", L"?f366 * ?f369");
add(L"f371", L"?f129 + ?f370");
add(L"f372", L"?f363 * ?f369");
add(L"f373", L"?f238 + ?f372");
add(L"f374", L"if(?f285, ?f21, ?f132)");
add(L"f375", L"if(?f285, ?f5, ?f240)");
add(L"f376", L"if(?f285, ?f21, ?f134)");
add(L"f377", L"if(?f285, ?f5, ?f242)");
add(L"f378", L"if(?f285, ?f132, ?f371)");
add(L"f379", L"if(?f285, ?f240, ?f373)");
add(L"f380", L"if(?f285, ?f134, ?f371)");
add(L"f381", L"if(?f285, ?f242, ?f373)");
add(L"f382", L"?f25 - ?f51");
add(L"f383", L"?f382 - ?f11");
add(L"f384", L"?f382 + ?f11");
add(L"f385", L"?f382 + ?f104");
add(L"f386", L"?f54 + ?f106");
add(L"f387", L"if(?f85, ?f25, ?f383)");
add(L"f388", L"if(?f85, ?f6, ?f56)");
add(L"f389", L"if(?f85, ?f25, ?f384)");
add(L"f390", L"if(?f85, ?f6, ?f58)");
add(L"f391", L"if(?f85, ?f383, ?f385)");
add(L"f392", L"if(?f85, ?f56, ?f386)");
add(L"f393", L"if(?f85, ?f384, ?f385)");
add(L"f394", L"if(?f85, ?f58, ?f386)");
add(L"f395", L"?f237 + ?f177");
add(L"f396", L"?f131 + ?f179");
add(L"f397", L"if(?f38, ?f20, ?f239)");
add(L"f398", L"if(?f38, ?f29, ?f133)");
add(L"f399", L"if(?f38, ?f20, ?f241)");
add(L"f400", L"if(?f38, ?f29, ?f135)");
add(L"f401", L"if(?f38, ?f239, ?f395)");
add(L"f402", L"if(?f38, ?f133, ?f396)");
add(L"f403", L"if(?f38, ?f241, ?f395)");
add(L"f404", L"if(?f38, ?f135, ?f396)");
add(L"f405", L"?f24 - ?f128");
add(L"f406", L"?f405 - ?f11");
add(L"f407", L"?f405 + ?f11");
add(L"f408", L"?f405 + ?f147");
add(L"f409", L"?f161 + ?f149");
add(L"f410", L"if(?f85, ?f24, ?f406)");
add(L"f411", L"if(?f85, ?f27, ?f163)");
add(L"f412", L"if(?f85, ?f24, ?f407)");
add(L"f413", L"if(?f85, ?f27, ?f165)");
add(L"f414", L"if(?f85, ?f406, ?f408)");
add(L"f415", L"if(?f85, ?f163, ?f409)");
add(L"f416", L"if(?f85, ?f407, ?f408)");
add(L"f417", L"if(?f85, ?f165, ?f409)");
/////////////////////////////////////////////////////////
}
};
}

View File

@ -404,13 +404,17 @@ int draw_enhanced_geometry::parsing(_CP_OPT(std::wstring) val)
/// draw-enhanced_geometry_attlist
void draw_enhanced_geometry_attlist::serialize(CP_ATTR_NODE)
{
if (draw_modifiers_ && draw_modifiers_->empty())
{
draw_modifiers_ = boost::none;
}
CP_XML_ATTR_OPT(L"draw:type", draw_type_);
CP_XML_ATTR_OPT(L"drawooo:sub-view-size", draw_sub_view_size_);
CP_XML_ATTR_OPT(L"draw:text-areas", draw_text_areas_);
CP_XML_ATTR_OPT(L"draw:text-rotate-angle", draw_text_rotate_angle_);
CP_XML_ATTR_OPT(L"draw:modifiers", draw_modifiers_);
CP_XML_ATTR_OPT(L"drawooo:enhanced-path", draw_enhanced_path_);
//CP_XML_ATTR_OPT(L"draw:enhanced-path", draw_enhanced_path_);
//CP_XML_ATTR_OPT(L"drawooo:enhanced-path", draw_enhanced_path_);
CP_XML_ATTR_OPT(L"draw:enhanced-path", draw_enhanced_path_);
CP_XML_ATTR_OPT(L"draw:glue-points", draw_glue_points_);
CP_XML_ATTR_OPT(L"draw:mirror-vertical", draw_mirror_vertical_);
CP_XML_ATTR_OPT(L"draw:mirror-horizontal", draw_mirror_horizontal_);

View File

@ -1267,10 +1267,14 @@ void odf_drawing_context::end_line_properties()
////////////////////////////////////////////////////////////////////
void odf_drawing_context::set_name(const std::wstring & name)
{
if (name.empty()) return;
impl_->current_drawing_state_.name_ = name;
}
void odf_drawing_context::set_description (const std::wstring & description)
{
if (description.empty()) return;
impl_->current_drawing_state_.description_ = description;
}
void odf_drawing_context::set_hidden (bool bVal)

View File

@ -138,6 +138,39 @@ oox_shape_ptr oox_shape::create(int ooxPrstGeomType)
case SimpleTypes::shapetypeStraightConnector1: return boost::make_shared<oox_shape_StraightConnector1>();
case SimpleTypes::shapetypeFrame: return boost::make_shared<oox_shape_Frame>();
case SimpleTypes::shapetypePentagon: return boost::make_shared<oox_shape_Pentagon>();
case SimpleTypes::shapetypeOctagon: return boost::make_shared<oox_shape_Octagon>();
case SimpleTypes::shapetypeHexagon: return boost::make_shared<oox_shape_Hexagon>();
case SimpleTypes::shapetypeHeptagon: return boost::make_shared<oox_shape_Heptagon>();
case SimpleTypes::shapetypeDecagon: return boost::make_shared<oox_shape_Decagon>();
case SimpleTypes::shapetypeDodecagon: return boost::make_shared<oox_shape_Dodecagon>();
case SimpleTypes::shapetypeCube: return boost::make_shared<oox_shape_Cube>();
case SimpleTypes::shapetypeCallout1: return boost::make_shared<oox_shape_Callout1>();
case SimpleTypes::shapetypeCallout2: return boost::make_shared<oox_shape_Callout2>();
// case SimpleTypes::shapetypeCallout3: return boost::make_shared<oox_shape_Callout3>();
case SimpleTypes::shapetypeAccentCallout1: return boost::make_shared<oox_shape_AccentCallout1>();
case SimpleTypes::shapetypeAccentCallout2: return boost::make_shared<oox_shape_AccentCallout2>();
case SimpleTypes::shapetypeAccentCallout3: return boost::make_shared<oox_shape_AccentCallout3>();
case SimpleTypes::shapetypeBorderCallout1: return boost::make_shared<oox_shape_BorderCallout1>();
case SimpleTypes::shapetypeBorderCallout2: return boost::make_shared<oox_shape_BorderCallout2>();
case SimpleTypes::shapetypeBorderCallout3: return boost::make_shared<oox_shape_BorderCallout3>();
case SimpleTypes::shapetypeAccentBorderCallout1: return boost::make_shared<oox_shape_AccentBorderCallout1>();
case SimpleTypes::shapetypeAccentBorderCallout2: return boost::make_shared<oox_shape_AccentBorderCallout2>();
case SimpleTypes::shapetypeAccentBorderCallout3: return boost::make_shared<oox_shape_AccentBorderCallout3>();
case SimpleTypes::shapetypeCloudCallout: return boost::make_shared<oox_shape_CloudCallout>();
case SimpleTypes::shapetypeWedgeRectCallout: return boost::make_shared<oox_shape_WedgeRectCallout>();
case SimpleTypes::shapetypeWedgeRoundRectCallout: return boost::make_shared<oox_shape_WedgeRoundRectCallout>();
case SimpleTypes::shapetypeWedgeEllipseCallout: return boost::make_shared<oox_shape_WedgeEllipseCallout>();
case SimpleTypes::shapetypeRibbon: return boost::make_shared<oox_shape_Ribbon>();
case SimpleTypes::shapetypeRibbon2: return boost::make_shared<oox_shape_Ribbon2>();
case SimpleTypes::shapetypeEllipseRibbon: return boost::make_shared<oox_shape_EllipseRibbon>();
case SimpleTypes::shapetypeEllipseRibbon2: return boost::make_shared<oox_shape_EllipseRibbon2>();
//case (2001 + SimpleTypes::textshapetypeTextArchDown):
//case (2001 + SimpleTypes::textshapetypeTextArchDownPour):
//case (2001 + SimpleTypes::textshapetypeTextArchUp):

View File

@ -1,17 +0,0 @@
QMAKE_CXX.INCDIRS = \
"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\INCLUDE" \
"C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt"
QMAKE_CXX.LIBDIRS = \
"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\LIB\\amd64" \
"C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.10240.0\\ucrt\\x64" \
"C:\\Program Files (x86)\\Windows Kits\\8.1\\lib\\winv6.3\\um\\x64"
QMAKE_CXX.QT_COMPILER_STDCXX = 199711L
QMAKE_CXX.QMAKE_MSC_VER = 1900
QMAKE_CXX.QMAKE_MSC_FULL_VER = 190024210
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_MSC_VER \
QMAKE_MSC_FULL_VER

View File

@ -26,7 +26,10 @@ core_linux {
core_mac {
LIBS += -L$$CORE_V8_PATH_LIBS -lv8_base -lv8_libplatform -lv8_libbase -lv8_snapshot -lv8_libsampler
LIBS += -L$$CORE_V8_PATH_LIBS/third_party/icu -licui18n -licuuc
#LIBS += -L$$CORE_V8_PATH_LIBS/third_party/icu -licui18n -licuuc
LIBS += $$CORE_V8_PATH_LIBS/third_party/icu/libicui18n.a
LIBS += $$CORE_V8_PATH_LIBS/third_party/icu/libicuuc.a
QMAKE_CXXFLAGS += -Wall -Wno-inconsistent-missing-override
QMAKE_CFLAGS += -Wall -Wno-inconsistent-missing-override

View File

@ -5,7 +5,7 @@ BUILD_NUMBER = $$(BUILD_NUMBER)
!isEmpty(PRODUCT_VERSION){
!isEmpty(BUILD_NUMBER){
VERSION = $$PRODUCT_VERSION.$$BUILD_NUMBER
VERSION = $${PRODUCT_VERSION}.$${BUILD_NUMBER}
}
}

View File

@ -1 +1 @@
2.4.554.0
2.4.555.0

View File

@ -1,7 +1,7 @@
#include "./XmlSigner_openssl.h"
#include "../../../common/File.h"
#include "../../../common/String.h"
#include "../../../common/StringExt.h"
#include "../../../common/BigInteger.h"
#include <unistd.h>

View File

@ -12,7 +12,7 @@
#include <openssl/conf.h>
#include "../../../common/File.h"
#include "../../../common/String.h"
#include "../../../common/StringExt.h"
#include "opensslwrapper.h"
class COpenssl_library_private

View File

@ -602,6 +602,8 @@ void TestDocument7()
pPage->EndText();
oPdf.SetDocumentID(L"23193r09jscladjalj");
//oPdf.SetPasswords(L"123", L"qwe");
oPdf.SaveToFile(L"D:/test/_pdf/Test7.pdf");
oPdf.Close();
}
@ -800,7 +802,7 @@ void ConvertFolder(std::wstring wsFolderPath)
int _tmain(int argc, _TCHAR* argv[])
{
TestDocument3();
TestDocument7();
return S_OK;

View File

@ -285,15 +285,15 @@ namespace PdfWriter
memcpy(impl->m_anEncryptionKey, key.data(), key.size());
//-------------------------------------------------------------------
unsigned long long extended_perms = 0xffffffff00000000LL | m_unPermission;
for (int i = 0; i < 8; ++i)
{
m_anPermEncrypt[i] = static_cast<unsigned char>(extended_perms & 0xff);
extended_perms >>= 8;
}
m_anPermEncrypt[8] = /*m_bEncryptMetadata ? 'T' : */'F';
m_anPermEncrypt[9] = 'a';
m_anPermEncrypt[10] = 'd';
unsigned long long extended_perms = 0xffffffff00000000LL | m_unPermission;
for (int i = 0; i < 8; ++i)
{
m_anPermEncrypt[i] = static_cast<unsigned char>(extended_perms & 0xff);
extended_perms >>= 8;
}
m_anPermEncrypt[8] = /*m_bEncryptMetadata ? 'T' : */'F';
m_anPermEncrypt[9] = 'a';
m_anPermEncrypt[10] = 'd';
m_anPermEncrypt[11] = 'b';
CryptoPP::SecByteBlock p(4);
@ -320,35 +320,58 @@ namespace PdfWriter
impl->Reset();
}
#define PADDING_SIZE 16
unsigned int CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast)
{
unsigned int unLenOut = unLen;
if (unLenOut % PADDING_SIZE != 0 && bLast)
unLenOut = (unLen / PADDING_SIZE + 1) * PADDING_SIZE;
unsigned int CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen)
{
unsigned int unLenOut = unLen;
memcpy(pDst, impl->streamInitialization, 16);
CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst + 16, unLenOut), CryptoPP::StreamTransformationFilter::NO_PADDING );
if (unLenOut % PADDING_SIZE != 0)
unLenOut = (unLen / PADDING_SIZE + 1) * PADDING_SIZE;
if (unLenOut != unLen)
{
stfEncryption.Put2(pSrc, unLen, 0, true);
unsigned char empty[16] = {};
stfEncryption.Put2(empty, unLenOut - unLen, 1, true);
}
else
{
stfEncryption.Put2(pSrc, unLen, bLast ? 1 : 0, true);
}
stfEncryption.MessageEnd();
memcpy(pDst, impl->streamInitialization, 16);
return unLenOut + 16;
}
void CEncrypt::SetPermission(unsigned int unPermission)
{
m_unPermission = unPermission;
}
CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst + 16, unLenOut), CryptoPP::StreamTransformationFilter::NO_PADDING );
stfEncryption.Put2(pSrc, unLen, 0, true);
if (unLenOut != unLen)
{
unsigned char empty[16] = {};
stfEncryption.Put2(empty, unLenOut - unLen, 0, true);
}
stfEncryption.MessageEnd();
return unLenOut + 16;
}
//unsigned int CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bFirst, bool bLast)
// {
// unsigned int unLenOut = unLen;
// if (unLenOut % PADDING_SIZE != 0 && bLast)
// unLenOut = (unLen / PADDING_SIZE + 1) * PADDING_SIZE;
// if(bFirst)
// memcpy(pDst, impl->streamInitialization, 16);
// CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst + (bFirst ? 16 : 0), unLenOut), CryptoPP::StreamTransformationFilter::NO_PADDING );
// stfEncryption.Put2(pSrc, unLen, 0, true);
//
//if (unLenOut != unLen && bLast)
// {
// unsigned char empty[16] = {};
// stfEncryption.Put2(empty, unLenOut - unLen, 0, true);
// }
// if (bLast)
// {
// stfEncryption.MessageEnd();
// }
// return unLenOut + (bFirst ? 16 : 0);
// }
void CEncrypt::SetPermission(unsigned int unPermission)
{
m_unPermission = unPermission;
}
}

View File

@ -51,7 +51,7 @@ namespace PdfWriter
void CreateEncryptionKey();
void InitKey(unsigned int unObjectId, unsigned short unGenNo);
void Reset();
unsigned int CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast);
unsigned int CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen);
void SetPermission(unsigned int unPermission);
void SetPasswords(const std::string &sUserPassword, const std::string &sOwnerPassword);
private:

View File

@ -342,156 +342,183 @@ namespace PdfWriter
Write((BYTE*)sBuf, nIndex);
}
void CStream::WriteBinary(const BYTE* pData, unsigned int unLen, CEncrypt* pEncrypt)
{
char sBuf[TEXT_DEFAULT_LEN];
{
char sBuf[TEXT_DEFAULT_LEN];
BYTE* pBuf = NULL;
bool bDelete = false;
unsigned int nIndex = 0;
BYTE* pBuf = NULL;
bool bDelete = false;
unsigned int nIndex = 0;
const BYTE* pBuffer = NULL;
if (pEncrypt)
{
pBuf = new BYTE[unLen + 16 + 16]; // iv + padding
bDelete = true;
unLen = pEncrypt->CryptBuf(pData, pBuf, unLen, true);
pBuffer = pBuf;
}
else
{
pBuffer = pData;
}
const BYTE* pBuffer = NULL;
if (pEncrypt)
{
pBuf = new BYTE[unLen + 16 + 16]; // iv + padding
bDelete = true;
unLen = pEncrypt->CryptBuf(pData, pBuf, unLen);
pBuffer = pBuf;
}
else
{
pBuffer = pData;
}
for (int nCounter = 0; nCounter < unLen; nCounter++, pBuffer++)
{
Write((const BYTE*)c_pHexStrings[*pBuffer], 2);
}
for (int nCounter = 0; nCounter < unLen; nCounter++, pBuffer++)
{
Write((const BYTE*)c_pHexStrings[*pBuffer], 2);
}
if (nIndex > 0)
{
Write((BYTE*)sBuf, nIndex);
}
if (nIndex > 0)
{
Write((BYTE*)sBuf, nIndex);
}
if (bDelete)
delete[] pBuf;
}
if (bDelete)
delete[] pBuf;
}
void CStream::WriteStreamWithDeflate(CStream* pStream, CEncrypt* pEncrypt)
{
unsigned long nRet = OK;
{
unsigned long nRet = OK;
CDeflate ZStream;
BYTE inbuf[STREAM_BUF_SIZ];
BYTE otbuf[DEFLATE_BUF_SIZ];
BYTE ebuf[DEFLATE_BUF_SIZ];
// initialize input stream
pStream->Seek(0, SeekSet);
BYTE *otbuf_all = NULL;
// initialize decompression stream.
// initialize input stream
pStream->Seek(0, SeekSet);
unsigned long size = pStream->Size();
if (pEncrypt)
{
unsigned long size_out = (unsigned long)(size * 1.1 + 13 + 64);
otbuf_all = new BYTE[size_out];
}
// initialize decompression stream.
ZStream.SetOut(otbuf, DEFLATE_BUF_SIZ);
ZStream.Init(DEFLATE_DEFAULT_COMPRESSION, -1);
ZStream.SetIn(inbuf, 0);
for (;;)
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(inbuf, &unSize);
unsigned long size_crypt = 0;
unsigned int offset = 0;
while(true)
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(inbuf, &unSize);
ZStream.SetIn(inbuf, unSize);
if (0 == unSize)
break;
if (0 == unSize)
break;
while (ZStream.GetAvailIn() > 0)
{
{
ZStream.Process(DEFLATE_NO_FLUSH);
if (ZStream.GetAvailOut() == 0)
{
if (pEncrypt)
{
pEncrypt->CryptBuf(otbuf, ebuf, DEFLATE_BUF_SIZ, false);
Write(ebuf, DEFLATE_BUF_SIZ);
}
else
Write(otbuf, DEFLATE_BUF_SIZ);
{
if (pEncrypt)
{
memcpy(otbuf_all + offset, otbuf, DEFLATE_BUF_SIZ);
offset += DEFLATE_BUF_SIZ;
}
else
Write(otbuf, DEFLATE_BUF_SIZ);
ZStream.SetOut(otbuf, DEFLATE_BUF_SIZ);
}
}
}
}
}
}
bool bEnd = false;
for (;;)
{
bool bEnd = false;
while(true)
{
nRet = ZStream.Process(DEFLATE_FINISH);
if (DEFLATE_OK != nRet && DEFLATE_STREAM_END != nRet)
{
{
ZStream.End();
return;
}
return;
}
if (DEFLATE_STREAM_END == nRet)
bEnd = true;
bEnd = true;
if (ZStream.GetAvailOut() < DEFLATE_BUF_SIZ)
{
{
unsigned int osize = DEFLATE_BUF_SIZ - ZStream.GetAvailOut();
if (pEncrypt)
{
osize = pEncrypt->CryptBuf(otbuf, ebuf, osize, true);
Write(ebuf, osize);
}
else
Write(otbuf, osize);
if (pEncrypt)
{
memcpy(otbuf_all + offset, otbuf, osize);
offset += osize;
}
else
Write(otbuf, osize);
ZStream.SetOut(otbuf, DEFLATE_BUF_SIZ);
}
}
if (bEnd)
break;
}
if (bEnd)
break;
}
if (pEncrypt)
{
BYTE *etbuf_all = new BYTE[offset + 32];
unsigned int osize = pEncrypt->CryptBuf(otbuf_all, etbuf_all, offset);
delete []otbuf_all;
Write(etbuf_all, osize);
delete []etbuf_all;
}
ZStream.End();
}
}
void CStream::WriteStream(CStream* pStream, unsigned int unFilter, CEncrypt *pEncrypt)
{
if (pStream->Size() <= 0)
return;
{
if (pStream->Size() <= 0)
return;
#ifndef FILTER_FLATE_DECODE_DISABLED
if (unFilter & STREAM_FILTER_FLATE_DECODE)
return WriteStreamWithDeflate(pStream, pEncrypt);
if (unFilter & STREAM_FILTER_FLATE_DECODE)
return WriteStreamWithDeflate(pStream, pEncrypt);
#endif
BYTE pBuf[STREAM_BUF_SIZ];
BYTE pEBuf[STREAM_BUF_SIZ];
pStream->Seek(0, SeekSet);
for (;;)
if (pEncrypt)
{
unsigned int size = pStream->Size();
BYTE *pBuf = new BYTE[size];
BYTE *pEBuf = new BYTE[size + 32];
pStream->Read(pBuf, &size);
size = pEncrypt->CryptBuf(pBuf, pEBuf, size);
Write(pEBuf, size);
delete []pBuf;
delete []pEBuf;
}
else
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(pBuf, &unSize);
BYTE pBuf[STREAM_BUF_SIZ];
if (0 == unSize)
break;
while(true)
{
unsigned int unSize = STREAM_BUF_SIZ;
pStream->Read(pBuf, &unSize);
if (pEncrypt)
{
unSize = pEncrypt->CryptBuf(pBuf, pEBuf, unSize, pStream->IsEof());
Write(pEBuf, unSize);
}
else
{
if (0 == unSize)
break;
Write(pBuf, unSize);
}
}
}
}
void CStream::Write(CNullObject* pNull)
{
}
{
}
void CStream::Write(CBoolObject* pBool)
{
if (pBool->Get())