ooxml: Preserve shape style attribute fillRef

Shape style attributes contain the default format for the shape in
case that no direct format is specified for it. This is an example
of the attribute we want to preserve with this patch:

  <wps:style>
    ...
    <a:fillRef idx="1">
      <a:schemeClr val="accent1"/>
    </a:fillRef>
    ...
  </wps:style>

The relevant values in these tags are stored at the maShapeStyleRefs
member in the Shape object. The storage happens at
ShapeStyleContext::onCreateContext which is run when the <a:fillRef>
tag is opened. The ShapeStyleRef object contains the idx value and a
Color object which will contain the inner tag <a:schemeClr>.

The Color object has been modified to store the string value of
schemeClr. The storage happens at ColorValueContext::onStartElement
which is run when the tag <a:schemeClr> is opened.

Later, Shape::createAndInsert is called by the ShapeContextHandler to
create the actual XShape, this happens when the tag <wps:wsp> is
closed. createAndInsert puts idx and schemeClr values into the
InteropGrabBag property of the XShape with the name StyleFillRef.

On export time, when the shape data is written at
ShapeExport::WriteCustomShape, we added a call to
DrawingML::WriteShapeStyle. This method will check the existence of
the InteropGrabBag property in the shape, read the StyleFillRef prop
inside it and output the proper XML to the style definition.

DrawingML::WriteShapeStyle also writes some mock tags into the
<wps:style> because we found that they are compulsory. We will
replace them with the proper data in further patches.

The method putPropertyToGrabBag was added to the Shape object for
convenience.

The data files for some /sd/qa/ unit tests were updated to reflect
the new property StyleFillRef inside the InteropGrabBag.

Change-Id: I5ffa5242852461a1a709a8f169d40f0d7a2c9aa3
This commit is contained in:
Jacobo Aragunde Pérez 2014-01-14 18:43:06 +01:00
parent 2e34ceeb92
commit 15e01d90b9
10 changed files with 523 additions and 53 deletions

View File

@ -58,6 +58,8 @@ public:
void setPrstClr( sal_Int32 nToken );
/** Sets a scheme color from the a:schemeClr element. */
void setSchemeClr( sal_Int32 nToken );
/** Sets the scheme name from the a:schemeClr element for interoperability purposes */
void setSchemeName( OUString sSchemeName ) { msSchemeName = sSchemeName; }
/** Sets a system color from the a:sysClr element. */
void setSysClr( sal_Int32 nToken, sal_Int32 nLastRgb );
/** Sets a palette color index. */
@ -90,6 +92,9 @@ public:
/** Returns the transparency of the color (0 = opaque, 100 = full transparent). */
sal_Int16 getTransparency() const;
/** Returns the scheme name from the a:schemeClr element for interoperability purposes */
OUString getSchemeName() const { return msSchemeName; }
private:
/** Internal helper for getColor(). */
void setResolvedRgb( sal_Int32 nRgb ) const;
@ -130,6 +135,8 @@ private:
mutable sal_Int32 mnC2; /// Green, green%, saturation, or system default RGB.
mutable sal_Int32 mnC3; /// Blue, blue%, or luminance.
sal_Int32 mnAlpha; /// Alpha value (color opacity).
OUString msSchemeName; /// Scheme name from the a:schemeClr element for interoperability purposes
};
typedef boost::shared_ptr< Color > ColorPtr;

View File

@ -217,6 +217,9 @@ protected:
::oox::core::XmlFilterBase& rFilter,
const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& rxShapes );
void putPropertyToGrabBag(
const ::com::sun::star::beans::PropertyValue& pProperty );
std::vector< ShapePtr > maChildren; // only used for group shapes
com::sun::star::awt::Size maChSize; // only used for group shapes
com::sun::star::awt::Point maChPosition; // only used for group shapes

View File

@ -147,6 +147,7 @@ public:
void WritePresetShape( const char* pShape, MSO_SPT eShapeType, sal_Bool bPredefinedHandlesUsed, sal_Int32 nAdjustmentsWhichNeedsToBeConverted, const ::com::sun::star::beans::PropertyValue& rProp );
void WritePolyPolygon( const PolyPolygon& rPolyPolygon );
void WriteFill( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xPropSet );
void WriteShapeStyle( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet );
static void ResetCounters();

View File

@ -69,7 +69,12 @@ void ColorValueContext::onStartElement( const AttributeList& rAttribs )
break;
case A_TOKEN( schemeClr ):
{
mrColor.setSchemeClr( rAttribs.getToken( XML_val, XML_TOKEN_INVALID ) );
oox::OptValue<rtl::OUString> sSchemeName = rAttribs.getString( XML_val );
if( sSchemeName.has() )
mrColor.setSchemeName( sSchemeName.use() );
}
break;
case A_TOKEN( prstClr ):

View File

@ -564,6 +564,21 @@ Reference< XShape > Shape::createAndInsert(
if( const FillProperties* pFillProps = pTheme->getFillStyle( pFillRef->mnThemedIdx ) )
aFillProperties.assignUsed( *pFillProps );
nFillPhClr = pFillRef->maPhClr.getColor( rGraphicHelper );
OUString sColorScheme = pFillRef->maPhClr.getSchemeName();
if( !sColorScheme.isEmpty() )
{
Sequence< PropertyValue > aProperties(2);
aProperties[0].Name = "SchemeClr";
aProperties[0].Value = Any( sColorScheme );
aProperties[1].Name = "Idx";
aProperties[1].Value = Any( pFillRef->mnThemedIdx );
PropertyValue pStyleFillRef;
pStyleFillRef.Name = "StyleFillRef";
pStyleFillRef.Value = Any( aProperties );
putPropertyToGrabBag( pStyleFillRef );
}
}
if( const ShapeStyleRef* pEffectRef = getShapeStyleRef( XML_effectRef ) )
{
@ -1037,6 +1052,24 @@ void Shape::finalizeXShape( XmlFilterBase& rFilter, const Reference< XShapes >&
}
}
void Shape::putPropertyToGrabBag( const PropertyValue& pProperty )
{
Reference< XPropertySet > xSet( mxShape, UNO_QUERY );
Reference< XPropertySetInfo > xSetInfo( xSet->getPropertySetInfo() );
const OUString& aGrabBagPropName = OUString( UNO_NAME_MISC_OBJ_INTEROPGRABBAG );
if( mxShape.is() && xSet.is() && xSetInfo.is() && xSetInfo->hasPropertyByName( aGrabBagPropName ) )
{
Sequence< PropertyValue > aGrabBag;
xSet->getPropertyValue( aGrabBagPropName ) >>= aGrabBag;
sal_Int32 length = aGrabBag.getLength();
aGrabBag.realloc( length + 1 );
aGrabBag[length] = pProperty;
xSet->setPropertyValue( aGrabBagPropName, Any( aGrabBag ) );
}
}
// ============================================================================
} }

View File

@ -1620,6 +1620,52 @@ void DrawingML::WriteFill( Reference< XPropertySet > xPropSet )
return;
}
void DrawingML::WriteShapeStyle( Reference< XPropertySet > xPropSet )
{
// check existence of the grab bag
if ( !GetProperty( xPropSet, "InteropGrabBag" ) )
return;
// extract the relevant properties from the grab bag
Sequence< PropertyValue > aGrabBag;
Sequence< PropertyValue > aFillRefProperties;
mAny >>= aGrabBag;
for( sal_Int32 i=0; i < aGrabBag.getLength(); ++i)
if( aGrabBag[i].Name == "StyleFillRef" )
{
aGrabBag[i].Value >>= aFillRefProperties;
break;
}
// write mock <a:lnRef>
mpFS->singleElementNS( XML_a, XML_lnRef, XML_idx, I32S( 0 ), FSEND );
// write <a:fillRef>
if( aFillRefProperties.getLength() > 0 )
{
OUString sSchemeClr;
sal_uInt32 nIdx;
for( sal_Int32 i=0; i < aFillRefProperties.getLength(); ++i)
if( aFillRefProperties[i].Name == "SchemeClr" )
aFillRefProperties[i].Value >>= sSchemeClr;
else if( aFillRefProperties[i].Name == "Idx" )
aFillRefProperties[i].Value >>= nIdx;
mpFS->startElementNS( XML_a, XML_fillRef, XML_idx, I32S( nIdx ), FSEND );
mpFS->singleElementNS( XML_a, XML_schemeClr, XML_val,
OUStringToOString( sSchemeClr, RTL_TEXTENCODING_ASCII_US ).getStr(),
FSEND );
mpFS->endElementNS( XML_a, XML_fillRef );
}
else
// write mock <a:fillRef>
mpFS->singleElementNS( XML_a, XML_fillRef, XML_idx, I32S( 0 ), FSEND );
// write mock <a:effectRef>
mpFS->singleElementNS( XML_a, XML_effectRef, XML_idx, I32S( 0 ), FSEND );
// write mock <a:fontRef>
mpFS->singleElementNS( XML_a, XML_fontRef, XML_idx, "minor", FSEND );
}
}
}

View File

@ -369,6 +369,10 @@ ShapeExport& ShapeExport::WriteCustomShape( Reference< XShape > xShape )
pFS->endElementNS( mnXmlNamespace, XML_spPr );
pFS->startElementNS( mnXmlNamespace, XML_style, FSEND );
WriteShapeStyle( rXPropSet );
pFS->endElementNS( mnXmlNamespace, XML_style );
// write text
WriteTextBox( xShape, mnXmlNamespace );

View File

@ -23,7 +23,14 @@
<Line2 column1="0.000000" column2="2.000000" column3="4366.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="0" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="IsPostRotateAngle" value="true" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
@ -84,7 +91,14 @@
<Line2 column1="0.000000" column2="2.000000" column3="5159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="0" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="IsPostRotateAngle" value="true" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
@ -145,7 +159,14 @@
<Line2 column1="0.000000" column2="2.000000" column3="4366.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="0" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="IsPostRotateAngle" value="true" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
@ -206,7 +227,14 @@
<Line2 column1="0.000000" column2="2.000000" column3="5159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="0" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="IsPostRotateAngle" value="true" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>

View File

@ -13,7 +13,14 @@
<Line2 column1="0.000000" column2="10856.000000" column3="5160.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>

View File

@ -258,7 +258,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -323,7 +330,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -388,7 +402,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -453,7 +474,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -518,7 +546,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -583,7 +618,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="2309.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -648,7 +690,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -713,7 +762,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -778,7 +834,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -843,7 +906,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -908,7 +978,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -973,7 +1050,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="4145.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1038,7 +1122,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1103,7 +1194,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1168,7 +1266,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1233,7 +1338,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1298,7 +1410,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1363,7 +1482,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="5981.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1428,7 +1554,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1493,7 +1626,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1558,7 +1698,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1623,7 +1770,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1688,7 +1842,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1753,7 +1914,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="7816.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1818,7 +1986,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1883,7 +2058,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -1948,7 +2130,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2013,7 +2202,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2078,7 +2274,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2143,7 +2346,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="9652.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2208,7 +2418,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2273,7 +2490,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2338,7 +2562,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2403,7 +2634,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2468,7 +2706,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2533,7 +2778,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="11488.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2598,7 +2850,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2663,7 +2922,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2728,7 +2994,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2793,7 +3066,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2858,7 +3138,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2923,7 +3210,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="13323.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -2988,7 +3282,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -3053,7 +3354,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -3118,7 +3426,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -3183,7 +3498,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -3248,7 +3570,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>
@ -3313,7 +3642,14 @@
<Line2 column1="0.000000" column2="1482.000000" column3="15159.000000"/>
<Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
</Transformation>
<InteropGrabBag/>
<InteropGrabBag>
<PropertyValue name="StyleFillRef">
<StyleFillRef>
<PropertyValue name="SchemeClr" value="accent1" handle="0" propertyState="DIRECT_VALUE"/>
<PropertyValue name="Idx" value="1" handle="0" propertyState="DIRECT_VALUE"/>
</StyleFillRef>
</PropertyValue>
</InteropGrabBag>
<CustomShapeGeometry>
<PropertyValue name="AdjustmentValues">
<AdjustmentValues/>